gpt4 book ai didi

ios - Swift IAP RestoreCompletedTransactions 甚至可以恢复未购买的元素

转载 作者:行者123 更新时间:2023-11-30 13:36:13 36 4
gpt4 key购买 nike

我的应用程序中有 4 个非消耗品,购买这些作品没有任何问题。

但是,我创建了一个恢复购买按钮,该按钮可以恢复所有产品,无论用户是否购买过它们。我在4个不同的沙箱测试用户上进行了测试,结果是一致的(即对于从未购买过非消耗品的测试用户,点击“恢复”会恢复所有产品)

我的恢复代码如下所示:

@IBAction func restorePurchases(sender: UIButton) {
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}

func paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue) {
print("transactions restored")

for transaction in queue.transactions {
let t: SKPaymentTransaction = transaction

let prodID = t.payment.productIdentifier as String

switch prodID {
case "productAbc1":
defaults.setBool(true , forKey: "productAbc1")

case "productAbc2":
defaults.setBool(true , forKey: "productAbc2")

case "productAbc3":
defaults.setBool(true , forKey: "productAbc3")

case "productAbc3":
defaults.setBool(true , forKey: "productAbc4")

default:
print("IAP not setup; enable it")
}

}
}

我是否需要检查 paymentQueueRestoreCompletedTransactionsFinished 中的其他参数?将我的代码与许多其他类似问题/IAP 示例进行比较,它看起来几乎相同。这是沙箱环境或代码的问题吗?

最佳答案

queue.finishTransaction(transaction) 

每个案例都缺失;这意味着他们永远不会从队列中清除。因此,下次我尝试恢复购买时,所有以前的交易都被找到(并恢复)。

添加上述代码行解决了该问题。

关于ios - Swift IAP RestoreCompletedTransactions 甚至可以恢复未购买的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36045882/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com