无法在Swift中进行应用内购买:无法连接到iTunes Store

问题描述

我在实施一个简单的应用内购买时遇到问题,这个想法是在主屏幕上禁用用户与某些按钮的交互,并且在用户支付Feed后, isUserInteractionEnabled 将设置为是的。

我正在跟踪安吉拉·于(Angela Yu)关于应用程序内购买的课程,一切似乎都正确,但是我始终遇到错误 由于以下原因交易失败:无法连接到iTunes Store 在失败的transactionState上。

我所做的:

  • 卸载了应用
  • 退出我的iTunes帐户
  • 退出沙盒用户
  • 在真实设备上运行该应用
  • 已发送给沙箱用户
  • 仍然有问题

第二次我与同一个用户尝试该应用程序时,它甚至都没有进入帐户,我相信交易仍在队列中

产品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 (将#修改为@)