还原IAP时无法获得完整收据

问题描述 投票:0回答:1

[当我尝试还原IAP ARS时。我有多个已还原的交易,但是我尝试将当前的收据发送到public func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { for transaction in transactions { switch (transaction.transactionState) { case .purchased: complete(transaction: transaction) break case .failed: fail(transaction: transaction) break case .restored: if(transactions.last == transaction) { restoreAndSendToServer(transaction: transaction) } else { restore(transaction: transaction) } break case .deferred: break case .purchasing: break } } }

restoreAndSendToServer的示例

guard let productIdentifier = transaction.original?.payment.productIdentifier else { return } print("restored last... \(productIdentifier)") self.sendTokenAndReceptForValidationFirstTime() productPurchaseCompleted(identifier: productIdentifier) SKPaymentQueue.default().finishTransaction(transaction)

[当我尝试还原IAP ARS时。我有多个已还原的事务,但是在上次还原时,我只尝试还原一个(在某处我发现沙盒环境正常的信息,不是吗?)。]]
swift in-app-purchase restore auto-renewable
1个回答
0
投票
如果将收据数据发送到服务器,则不必处理交易的restore状态。需要验证收据时,只需将收据数据提交到服务器即可。

并且如果设备上不存在收据数据,则无需致电SKPaymentQueue.default().restoreCompletedTransactions()。您应该调用SKReceiptRefreshRequest刷新收据。

© www.soinside.com 2019 - 2024. All rights reserved.