iOS IAP还原不起作用

时间:2016-06-03 13:24:45

标签: ios swift in-app-purchase

我有IAP的ios App。我作为测试用户在沙盒中购买产品,一切都很好。我收到收据并将其分开。 然后我重新安装应用程序,我正在尝试恢复IAP并调用

SKPaymentQueue.defaultQueue().restoreCompletedTransactions()

下一步

paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue) 

被调用。没有恢复。 我想必须有

的召唤
paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])

但它缺失了!收据也不存在。

必须有要恢复的交易(因为如果我再次购买产品,StoreKit说它已经购买了)我做错了什么?

UPD:

我要恢复的产品是不可续订的订阅。如果这是唯一要恢复的产品,Apple不会返回交易清单。如果购买了其他产品(例如,非消耗品),Apple会返回完整的交易清单......

1 个答案:

答案 0 :(得分:0)

我在恢复购买前请求收据:

let receiptRefreshRequest: SKRequest = SKReceiptRefreshRequest()
receiptRefreshRequest.delegate = self
receiptRefreshRequest.start()

然后在回复后我做了恢复

public func requestDidFinish(request: SKRequest) {
    if request == receiptRefreshRequest {
        SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
    }
}