我有IAP的ios App。我作为测试用户在沙盒中购买产品,一切都很好。我收到收据并将其分开。 然后我重新安装应用程序,我正在尝试恢复IAP并调用
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
下一步
paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue)
被调用。没有恢复。 我想必须有
的召唤paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
但它缺失了!收据也不存在。
必须有要恢复的交易(因为如果我再次购买产品,StoreKit说它已经购买了)我做错了什么?
UPD:
我要恢复的产品是不可续订的订阅。如果这是唯一要恢复的产品,Apple不会返回交易清单。如果购买了其他产品(例如,非消耗品),Apple会返回完整的交易清单......
答案 0 :(得分:0)
我在恢复购买前请求收据:
let receiptRefreshRequest: SKRequest = SKReceiptRefreshRequest()
receiptRefreshRequest.delegate = self
receiptRefreshRequest.start()
然后在回复后我做了恢复
public func requestDidFinish(request: SKRequest) {
if request == receiptRefreshRequest {
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}
}