アプリ内購入を通じてサブスクリプションを処理する必要がある iPhone アプリを構築しています。アプリでAppleからレシートを受け取ったら、レシートを自分のサーバーに保存し、自分のサーバーでもAppleサーバーでレシートを確認したいと考えています。サーバーへのこの接続が確立されることは非常に重要です。これにより、後で必要になるユーザーに関する情報が保存されるからです。
私の SKPaymentTransactionObserver では、SKPaymentTransactionStatePurchased でサーバーを呼び出そうとしています。問題は、SKPaymentTransactionStatePurchased に「ありがとう」という標準アラートが表示され、購入が完了したことです。アプリがサーバーに接続するのに時間がかかるため、サーバーへの呼び出しが完了する前にこの標準アラートが表示されます。ユーザーがここでアプリを終了するとどうなりますか? いつサーバーに連絡する必要がありますか? また、サーバーへの呼び出しが完了したときにユーザーにアラートを表示したい場合、いつそれを行う必要がありますか?
これは私が使用しているコードです:
//This is called on "SKPaymentTransactionStatePurchased"
- (void) completeTransaction: (SKPaymentTransaction *)transaction
{
[self saveAndVerifyOnServer:transaction];
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}