SKPaymentTransactionObserver;多次重复交易

问题描述

我有一个应用程序,我在其中使用了 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

编辑:我是初学者,所以任何解释、建议和更正都会很棒:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)