代码如下。我在调用 updateTransactions 后调用 SKPaymentQueue.default().finishTransaction(transaction) - 不确定为什么事务状态在 Xcode 的 Storekit Transactions 中未完成。
internal func purchaseFullVersion() {
if let product = product {
let payment = SKPayment(product: product)
SKPaymentQueue.default().add(payment)
}
}
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
switch transaction.transactionState {
case .purchased : purchased(transaction: transaction)
case .failed : failed(transaction: transaction)
case .restored : restored(transaction: transaction)
default : break
}
}
}
internal func purchased(transaction:SKPaymentTransaction) {
SKPaymentQueue.default().finishTransaction(transaction)
print("Purchased")
guard let product = product else { return }
purchaseTransactionComplete() // this updates UserDefaults
}