如何解决无法在Swift中进行应用内购买:无法连接到iTunes Store
我在实施一个简单的应用内购买时遇到问题,这个想法是在主屏幕上禁用用户与某些按钮的交互,并且在用户支付Feed后, isUserInteractionEnabled 将设置为是的。
我正在跟踪安吉拉·于(Angela Yu)关于应用程序内购买的课程,一切似乎都正确,但是我始终遇到错误 由于以下原因交易失败:无法连接到iTunes Store 在失败的transactionState上。
我所做的:
第二次我与同一个用户尝试该应用程序时,它甚至都没有进入帐户,我相信交易仍在队列中
产品ID的格式为“ fullBook”,而不是“ bundleID.fullBook”,我相信这应该不会出错,还是我错了?
代码:
覆盖func viewDidLoad(){ super.viewDidLoad()
if isPurchased() {
allowSegues()
purchaseButton.isHidden = true
} else {
button.isUserInteractionEnabled = false
}
}
}
func isPurchased() -> Bool {
let purchaseStatus = UserDefaults.standard.bool(forKey: "fullBook")
if purchaseStatus {
print("Purchased prevIoUsly")
return true
} else {
print("Never purchased")
return false
}
}
func allowSegues() {
UserDefaults.standard.set(true,forKey: "fullBook")
kitchenButton.isUserInteractionEnabled = true
}
func buyFullBook() {
if SKPaymentQueue.canMakePayments() {
let paymentRequest = SKMutablePayment()
paymentRequest.productIdentifier = "fullBook"
SKPaymentQueue.default().add(paymentRequest)
} else {
print("Can't make payments")
}
}
func paymentQueue(_ queue: SKPaymentQueue,updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
if transaction.transactionState == .purchased {
//User payment successful
print("Transaction successful!")
allowSegues()
SKPaymentQueue.default().finishTransaction(transaction)
} else if transaction.transactionState == .Failed {
if let error = transaction.error {
let errorDesc = error.localizedDescription
print("Transaction Failed due to error: \(errorDesc)")
}
SKPaymentQueue.default().finishTransaction(transaction)
} else if transaction.transactionState == .restored {
allowSegues()
print("Transaction restored")
SKPaymentQueue.default().finishTransaction(transaction)
}
}
}
谢谢您的任何建议
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。