2011-09-13 6 views
1

期限切れの自動更新購読の更新は、アプリケーションがアクティブで実行中ではなく、バックグラウンドまたは起動時にアプリケーションが起動したときに行われることはありません。iOSの自動更新購読の配信

つまり、アプリを使用していて、登録が期限切れになると、ユーザーは引き続きアプリを使用している間はアプリに配信されません(自動更新や有効な場合など)。

この動作は、Appleによって文書化されているようではありません。

明らかに、サブが期限切れになったことを検出して、ユーザーにサブスクリプションステータスを確認し、新しいサブスクリプションを引き出すrestoreCompletedTransactionsを提供することができますが、私たちが何か間違っているのか不思議です。この動作は正常です。

ありがとうございました。

答えて

5

はい。それも私が経験したものです。 私が続ける前に、あなたは離れて、自動更新サブスクリプションから滞在したいかもしれない理由について、以下の記事を参照してください。Auto-renewing subscription – Differences to non-renewing subscription :このSOの質問に

あなたのアプリがアクティブになると、App Storeがあなたのアプリに新しい自動更新購読を送信するように誘発するようです。しかし、あなたはそれに頼るべきではありません。また、最新の領収書を受け取るためにrestoreCompletedTransactionsを取得する必要はありません。

この件に関する詳細は、answersの別の1つをご覧ください。 あなたがしなければならないことは(Appleの文書といくつかの実験に基づいて)あなたのサーバーに領収書を保存していることです。その後、人のサブスクリプションが自動更新されているかどうかを確認する場合は、Appleの手順verifying one of those receipts with iTunesに従ってください。 Appleはその領収書に関する情報と、その購読での最新の領収書に応答します。送信したものと異なる場合は、自動更新が発生したことがわかります。

+0

Andrew私はサーバーを持っていないのですが、代わりに私のアプリケーションはアプリの領収書をappleに送って、更新されたアプリ内の購読を受け取っています。サブスクリプション。 – MiMo

+1

@MiMoこの場合、あなたのアプリでは有効期限が過ぎるのを待ってからアップルに確認を送って、それが新しい領収書で応答するかどうか確認します。そうした場合、追加された機能の使用をユーザーにまで拡張することができます。そうでない場合、ユーザーは最後の期間中のある時点でそのサブスクリプションをキャンセルしています。ユーザーが現在の期間が終了し、新しい領収書が表示されるか、表示されなくなるまで、購読をキャンセルしたかどうかを確認する方法はありません。ユーザーは自動更新を有効にしている可能性がありますが、現在のサイクルはまだ完了しています。 – Andrew

+0

ありがとう@Andrew thats私が実際にやっていること、時々私は実際に購入日の前にある有効期限を持つ領収書を受け取ります。領収書を送るたびに、[[NSBundle mainBundle] appStoreReceiptURL];またはそれを一度取得してNSUserDefaultsに保存し、次にNSUserdaultsデータを使用して次回のApple Receiptを照会しますか? – MiMo

関連する問題