0

私は、アプリの購入で iTunes サンドボックス環境のテストを行っています。iTunes Connect で作成したテスト ユーザーを使用していますが、購入コードは正常に動作しています。現在、復元トランザクションをテストしています。これは復元のコードです。

    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

このコードを 1 回実行した後、アプリケーションを再起動するたびに、次のコードで TransactionObserver を登録します。

    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];

復元のテストに最後に使用したユーザーのパスワードを求められます。その取引は毎回私に返されます。このため、「未購入」状態でアプリケーションをテストすることはできません。私はすでにそのユーザーをログアウトして非テストユーザーとしてログインしようとしましたが、変更されません.そのテストユーザーのパスワードを挿入するように常に要求されます.

4

2 に答える 2

2

私は最終的に問題を発見しました:オブザーバーがメソッドで復元されたトランザクションを受け取ったとき

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

私はそれを処理して呼び出していました

[[SKPaymentQueue defaultQueue] finishTransaction:transaction.originalTransaction];

問題は、私も呼び出す必要があることです

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

コンテナトランザクション自体。それがないと、サンドボックスは同じトランザクションを何度も送信していました。受信を確認できなかったからです!

于 2013-04-13T21:08:58.017 に答える
1

まず、テストユーザーだけが使用できるサンドボックス環境にいます。そのため、新しいテスト ユーザーを作成して再試行してください。(存在しない電子メール アドレスでテスト ユーザーを作成できます。テストしても問題ありません ;) )

購入状態を NSUserDefaults に保存していると思いますので、新規ユーザーでテストして未購入の状態になるには、アプリケーションを削除して再度実行する必要があります。

幸運を!

于 2013-07-04T13:08:07.880 に答える