[当我尝试还原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时。我有多个已还原的事务,但是在上次还原时,我只尝试还原一个(在某处我发现沙盒环境正常的信息,不是吗?)。]]
restore
状态。需要验证收据时,只需将收据数据提交到服务器即可。 并且如果设备上不存在收据数据,则无需致电SKPaymentQueue.default().restoreCompletedTransactions()
。您应该调用SKReceiptRefreshRequest
刷新收据。