我有一个应用程序,我在其中使用了 SKPayment、SKPaymentTransactionObserver 等。但是,第一次付款一切正常,但是每当我选择要购买的任何其他东西时,它就会再次开始购买我已经购买的所有东西,最后是新的东西。尝试在互联网上查找它,但没有运气。
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
transactions.forEach( {
switch $0.transactionState {
case .purchasing:
print("purchasing item 1")
case .purchased:
print("purchased item 1")
SKPaymentQueue.default().finishTransaction($0)
downloadFileButton.setTitle("Download", for: .normal)
let userId = Auth.auth().currentUser?.uid
let childUpdate = ["item1": true]
Database.database().reference().child("users").child(userId!).child("purchase_status").updateChildValues(childUpdate)
case .failed:
print("user cancelled the sheet or an error occured")
SKPaymentQueue.default().finishTransaction($0)
case .restored:
break
case .deferred:
break
@unknown default:
break
}
})
}
我在任何可以购买东西的地方都得到了相同的代码,但除了像“项目 2”这样的小改动。当我按顺序购买 6 件商品时,第六次购买时,控制台如下所示:
采购项目 1
购买项目 2
购买项目 3
采购项目 4
购买项目 5
购买项目 6
// 购买后:
购买的物品 1
购买的物品 2
购买的物品 3
购买的物品 4
购买的物品 5
购买的物品 6
编辑:我是初学者,所以任何解释、建议和更正都会很棒:)