2017-02-20 5 views
0

Appleは、Appが機能を提供した場合にのみ、SKPaymentQueue.default()。finishTransaction(transaction)を使用することを提案します。 したがって、transactionStatus == .purchasedの場合、私はバックエンドにリクエストを送信します。 しかし、何らかの失敗が発生した場合(またはネットワーキングが失敗した場合)はどうなりますか?私は現在の取引を拒否したい。しかし、私がSKPaymentQueue.default()。finishTransaction(transaction)を作ると、私は成功した支払いを意味するトランザクションを完了させます。(それはありません)StoreKitで取引を拒否する

ここで取引を拒否することはできますか?

+0

トランザクションを完了できない場合は、単に「finishTransaction」を呼び出さないでください。トランザクションは依然として保留状態になり、再びオブザーバーに提示されます。ユーザーエクスペリエンスの観点から、フィードバックを提供し、ユーザーに再試行するか、後で「復元」ボタンを使用して再試行する必要があることを通知することをお勧めします。 – Paulw11

答えて

0

メソッドSKPaymentQueue.default()。finishTransaction(transaction)はトランザクションをトランザクションキューから削除します。トランザクションを完了しません。トランザクションが失敗したためにトランザクションキューからトランザクションを削除する正しい方法です。&は、もはやトランザクション操作を実行する必要はありません。

Apple storeKitのサンプルコードでも同じ実装方法があります。 iOSInAppPurchases/iOSInAppPurchases/StoreObserver.m

関連する問題