iOS IAP 恢复不起作用

iOS IAP restore doesn't work

我有带 IAP 的 ios 应用程序。我以测试用户身份在沙盒中购买产品,一切正常。我收到收据并打包它。 然后我重新安装应用程序,我正在尝试恢复 IAP 并调用

SKPaymentQueue.defaultQueue().restoreCompletedTransactions()

下一个

paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue) 

被调用。什么都没有恢复。 我想一定有

的电话
paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])

但是它不见了!收据也不存在。

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

更新:

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

我在恢复购买前索要收据:

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

然后在响应后我进行恢复

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