2012-03-04 10 views
1

2ヶ月前に私のアプリの2つでアプリ内自動更新サブスクリプションを実装しました。サブスクリプション期間の終了時に、ユーザーの古い領収書を保存し、アップルとサーバーに連絡して、サブスクリプションがまだ有効かどうかを確認しました。 ユーザーの一部がクライアントコード自体から自動更新されていることに気付きました。 私のアプリはエントリー時に[[SKPaymentQueue defaultQueue] addTransactionObserver:myObserver]]を呼び出し、SKPaymentTransactionStatePurchasedまたはSKPaymentTransactionStateRestoredが返された場合は、サーバーに呼び出して領収書を確認し、ユーザーにサブスクリプションを提供します。アプリ購入サブスクリプションで自動更新

私は、更新期間の終了時にクライアントが取得するトランザクション通知の背後にあるロジックを理解するために、しばらくお待ちしています。なぜユーザーの一部だけが通知を受け取り、残りの部分でサーバーが領収書を再検証する必要があるのか​​を知っていますか?私は、おそらくaddTransactionObserverの呼び出しと何か関係があると思っていました。たぶんそれらのユーザーは、バックグラウンドにいる間にアプリを殺し、サブスクリプション期間が終了した後に再びアプリに入ったため、addTransactionObserver:が起動して通知が届くことがありました。 すべてのユーザーにこの通知を受け取ることができれば、サブスクリプション期間の終了時にサーバーコールを実行する必要はなくなり、必要なときにクライアントから呼び出されます。

このパズルを理解するのに役立つ情報はありますか。

おかげ

ロワ

+0

私は 'SKPaymentTransactionStateRestored'を私のアプリの'自動更新可能な 'サブシステムで見たことがありません: –

答えて

2

私の経験では、サーバー上の領収書を確認し、定期的に継続する必要があります述べています。私はあなたと同じ気づきましたが、これらの新しい領収書は一貫してアプリに送られません。 Appleが新しい更新の一定期間内にアプリを新しく起動すると、Appleに領収書を送付すると思う。

関連する問題