gpt4 book ai didi

ios - Swift:IAP updatedTransactions 未在 .Purchased 上调用

转载 作者:搜寻专家 更新时间:2023-10-30 22:17:20 29 4
gpt4 key购买 nike

我的代码有问题。 updatedTransactions 函数仅在交易进行时被调用一次。购买并且在交易完成后不会被调用。

func buyProduct(product: SKProduct) {
let payment = SKPayment(product: product)
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
SKPaymentQueue.defaultQueue().addPayment(payment)
}

func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {

for transaction in transactions {
print(transaction)
switch (transaction.transactionState) {
case .Purchased, .Restored:
print("Completed")
complete(transaction)
break
case .Failed:
fail(transaction)
break
default:
break
}
}
}

最佳答案

抱歉,我可能回答晚了一点,但这可能与 this question 有关.当 Xcode 未达到 .purchased 状态时,您是否正在测试您的 IAP?

如果是,那么您需要将设备的 App Store ID 设置为您在 iTunes Connect 上创建的 ID(用户菜单、沙盒测试器)。

如果不是,那么可能是因为您的 SKPaymentQueue 已经包含太多等待完成的交易。您可以使用 SKPaymentQueue.default().transactions 检查它。

在我的案例中,我有 28 笔交易等待完成,因为我在购买阶段有一个错误的 switch case 语句。

如果是这种情况,您可以将这些行添加到您的 viewDidLoad 中以完成其中的每一行(当您发现它们没有在您的代码中完成时,请不要忘记删除它们):

for transaction: AnyObject in SKPaymentQueue.default().transactions {
SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
}

关于ios - Swift:IAP updatedTransactions 未在 .Purchased 上调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40854329/

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