iOS IAP - 如何区分"恢复已完成但未购买之前"州

时间:2018-02-04 18:01:31

标签: ios in-app-purchase storekit

如果用户正在进行恢复但之前从未购买过该IAP包,我该怎样才能解除这种情况。

当我触发

SKPaymentQueue.default().restoreCompletedTransactions()

系统会触发以下回调

1)对于已经购买的商品,那个订单中的2个

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {

2)对于尚未购买的商品,只需

func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {

通过这种可能的组合,我如何确保/验证呼叫恢复'被叫,但结果是"尚未购买"。

我是否真的必须保存状态" paymentQueue尚未被调用,现在paymentQueueRestoreCompletedTransactionsFinished被称为"作为条件?

1 个答案:

答案 0 :(得分:1)

您需要做的就是像处理初始购买案例一样处理交付给updatedTransactions的任何购买。 IE浏览器。解锁内容或提供其他功能,并坚持购买钥匙串或您正在使用的任何方法。

paymentQueueRestoreCompletedTransactionsFinished可让您知道还原操作已完成。如果需要,您可以使用此方法更新UI。例如,如果在开始还原时显示活动指示符,则可以使用此回调删除该指示符。