31

iOS の自動更新サブスクリプションに関して、次の質問があります。

a) 自動更新サブスクリプションは、サンドボックス環境で本当に自動更新されますか? ドキュメントには、サンドボックス環境でも6回発生する必要があると記載されていますが、サブスクリプションが自動的に更新されないことが問題のようです。

b) 自動延長サブスクリプションの新しいレシートを取得するには、restoreCompletedTransactions を呼び出す必要がありますか?それとも、iOS によって自動的に呼び出される -paymentQueue:updatedTransactions: メソッドですか? (「起動」と「バックグラウンドからの回転」で自動的に呼び出されたと思います)

c) 複数のデバイスで同じサブスクリプションをどのように処理しましたか? これは restoreCompletedTransactions で処理できますが、これを呼び出すとユーザーにパスワードが要求されるため、アプリが起動するたびに呼び出すのはあまり便利ではありません。

4

2 に答える 2

32

a)自動更新サブスクリプションは、サンドボックス環境で一貫性がありません。サブスクリプションは、終了する前に複数回(約5回)更新される場合があります。それ以外の場合は、まったく更新されません。

b)(iOS6トランザクションレシートのみ)以前のレシートを(できればサーバーに)保存している場合restoreCompletedTransactionsは、サブスクリプションのステータスを確認するために電話をかける必要はありません。そのユーザー用に保存したサブスクリプションレシートを受け取り、確認のためにAppStoreに送信するだけです。彼らはあなたが現在のサブスクリプションステータスを決定するために使用できるインクルードで応答します。latest_receipt_infoexpires_date

c)新しいユーザーに「以前の購入を復元する」ように促す必要があります。その時点でrestoreCompletedTransactionsを呼び出します。次に、これらの領収書の1つ(できればサーバーから)をApp Storeに送信して確認し、トランザクションに関するデコードされた詳細を取得します。original_transaction_id領収書情報でキーを探します。これには、このユーザーが初めてサブスクリプションを開始したときのIDが常に含まれます。このIDをシステム内の他のIDと比較すると、どのデバイスがAppleアカウントを共有しているかを判断できるはずです。(AppleではユーザーのApple IDを表示できないため、これは複数のデバイスにまたがるアカウントを識別するための最良の方法です)。

この質問と同様: iOSの自動更新は現在のサブスクリプション期間の終了時に期限切れになりました

于 2011-12-06T21:28:43.097 に答える
13

これに加えて、Apple のドキュメントの行が誤解されているようです

更新は高速で行われ、自動更新可能なサブスクリプションは 1 日に最大 6 回更新されます。これにより、サブスクリプションの更新、サブスクリプションの失効、ギャップを含むサブスクリプション履歴をアプリがどのように処理するかをテストできます。

これは、1 日あたりのすべてのサブスクリプションが 6 回しか更新されないことを意味しているようです。キャンセルする前に、各サブスクリプションが 6 回更新されるのではなく。これはしばらく私を投げました。

また、24 時間制のようです。所定の時間に更新されません。たとえば、午前 11 時にサブスクリプションを作成しましたが、更新されませんでした。午後2時に6回更新したものをもう一度作りました。

于 2016-02-18T15:48:13.993 に答える