2ヶ月前に私のアプリの2つでアプリ内自動更新サブスクリプションを実装しました。サブスクリプション期間の終了時に、ユーザーの古い領収書を保存し、アップルとサーバーに連絡して、サブスクリプションがまだ有効かどうかを確認しました。 ユーザーの一部がクライアントコード自体から自動更新されていることに気付きました。 私のアプリはエントリー時に[[SKPaymentQueue defaultQueue] addTransactionObserver:myObserver]
]を呼び出し、SKPaymentTransactionStatePurchased
またはSKPaymentTransactionStateRestored
が返された場合は、サーバーに呼び出して領収書を確認し、ユーザーにサブスクリプションを提供します。アプリ購入サブスクリプションで自動更新
私は、更新期間の終了時にクライアントが取得するトランザクション通知の背後にあるロジックを理解するために、しばらくお待ちしています。なぜユーザーの一部だけが通知を受け取り、残りの部分でサーバーが領収書を再検証する必要があるのかを知っていますか?私は、おそらくaddTransactionObserverの呼び出しと何か関係があると思っていました。たぶんそれらのユーザーは、バックグラウンドにいる間にアプリを殺し、サブスクリプション期間が終了した後に再びアプリに入ったため、addTransactionObserver:が起動して通知が届くことがありました。 すべてのユーザーにこの通知を受け取ることができれば、サブスクリプション期間の終了時にサーバーコールを実行する必要はなくなり、必要なときにクライアントから呼び出されます。
このパズルを理解するのに役立つ情報はありますか。
おかげ
ロワ
私は 'SKPaymentTransactionStateRestored'を私のアプリの'自動更新可能な 'サブシステムで見たことがありません: –