2

私は、12 か月ごとに更新される自動更新サブスクリプションを持つニューススタンド アプリに取り組んでいます。問題は、既に購読しているユーザーが購読を再度購入しようとした場合です。ドキュメントによるとSKPaymentTransactionStateRestored、ユーザーが既にサブスクライブしている場合、StoreKit フレームワークは返されるはずですがSKPaymentTransactionStateFailed、StoreKit デリゲート メソッドで返されます。

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

手順:

  1. 自動更新サブスクリプションを購入する
  2. 購入が成功したら、アプリを削除して再インストールします。
  3. 同じ Apple ID とパスワードで自動更新サブスクリプションを再度購入するか、同じ Apple ID を使用して別のデバイスで同じサブスクリプションを購入してみてください。

以前の購入を復元する代わりに、新しい購入リクエストを作成し、それに応じてサブスクリプション期間を更新するとは思えません。

これはアカウント ベースのアプリではないため、サブスクリプション期間をサーバーに保存して確認することはできません。

4

1 に答える 1

4

アプリに 2 つのボタンを追加する必要があります。

  • 購入 - 自動更新サブスクリプションのみを購入します
  • 復元 - 既存のサブスクリプションの復元を試みます[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]

「このサブスクリプションを既に購入している場合は、復元をタップするだけです」など、ユーザー向けの UI にいくつかの説明を書くことができます。

この手法は、Apple から 3 ~ 4 回拒否されたときに発明されました。「ユーザーはサブスクリプションを復元できる必要がある」、「ユーザーが予期しないパスワード プロンプトが表示されないようにする必要がある」(完了したトランザクションを復元するときにユーザー パスを要求する) ためです。 )、 等々。

于 2013-02-12T15:00:41.377 に答える