2017-02-20 77 views
0

Apple建議僅​​在App提供功能時使用SKPaymentQueue.default()。finishTransaction(交易)。 因此,如果transactionStatus ==.purchased我發送請求到我的後端。 但是如果我收到一些失敗(或網絡失敗)呢?我想拒絕當前的交易。但是,如果我使SKPaymentQueue.default()。finishTransaction(交易)我會完成交易,這意味着成功的付款(但它不是)在StoreKit拒絕交易

我怎麼可以在這裏拒絕交易?

+0

如果您無法完成該事務,則不要調用'finishTransaction'。交易仍處於待決狀態,並將再次呈現給觀察員。從用戶體驗的角度來看,我建議您提供一些反饋意見,並讓用戶有機會重試或通知他們,他們應該稍後使用「恢復」按鈕重試。 – Paulw11

回答

0

方法SKPaymentQueue.default()。finishTransaction(transaction)將剛剛從事務隊列中移除事務,未完成事務。從交易隊列中刪除交易是正確的方法,因爲交易操作不再需要&。

您還可以在Apple storeKit示例代碼中找到相同的實現方法。您可以在文件路徑中檢查:iOSInAppPurchases/iOSInAppPurchases/StoreObserver.m