2

アプリケーションに StoreKit を実装しました。私が気付いたのは、一部のテスト アカウントで、複数SKPaymentTransactionの が paymentQueue にあることです。これにより、SKPaymentTransactionObserverが複数回呼び出されます。SKPaymentTransactionStatePurchased

この問題は、アップグレードの途中でアプリを停止するか、アプリケーションをバックグラウンドに置くと、さらに明らかになるようです。

複数回の支払いの原因がわかりませんか、それともこれは予期された動作ですか? また、購入したすべてのトランザクションが検証された後、必ず終了するようにしています。

4

2 に答える 2

3

トランザクションが完了、キャンセル、または失敗した場合は、キューから削除する必要があります。そうしないと、支払いキューで複数のトランザクションがアクティブなままになります。これが問題の原因です。これを修正するには、トランザクションが完了、キャンセル、または失敗するたびに、次を呼び出します。

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
于 2013-02-07T02:51:14.837 に答える
1

[[SKPaymentQueue defaultQueue] finishTransaction:transaction]キューからトランザクションを削除するには、トランザクションごとに実行する必要があります。

于 2013-02-07T01:22:32.370 に答える