我想在我的应用中实现年度订阅,我使用 StoreKit
来实现。问题是,当我点击 subscriptionButton
时。应用抛出错误:'NSInvalidArgumentException',原因:'无法完成购买交易'
。我被困在这个地方,无法解决我的问题。因此,我的 paymentQueue
代码如下所示:
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
print(transactions)
for transaction in transactions {
print(transaction.error ?? "")
switch transaction.transactionState {
case .deferred:
print("deffered")
case let .failed(err):
print("failed: \(err)")
case .purchased:
let productID = p.productIdentifier
selectProduct(productID: productID)
case .purchasing:
print("purhasing")
print("produkt name: \(p.localizedTitle)") // after executing this line of code app crashes
case .restored:
let productID = p.productIdentifier
selectProduct(productID: productID)
}
queue.finishTransaction(transaction)
}
}
您有什么建议吗?我该如何解决?
最佳答案
在我的例子中,这个问题的有效解决方案是:
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
print(transaction.error ?? "")
switch transaction.transactionState {
case .deferred:
print("deffered")
queue.finishTransaction(transaction)
case let .failed(err):
print("failed: \(err)")
queue.finishTransaction(transaction)
case .purchased:
let productID = p.productIdentifier
selectProduct(productID: productID)
queue.finishTransaction(transaction)
case .purchasing:
print("purhasing")
case .restored:
let productID = p.productIdentifier
selectProduct(productID: productID)
queue.finishTransaction(transaction)
}
}
}
关于ios - 无法完成购买非续订订阅交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41521553/