StoreKit 沙盒购买失败并显示 "Confirm your IAP" 对话框("Cannot connect to iTunes Store" 代码 0)

StoreKit Sandbox Purchase Fails with "Confirm your IAP" Dialog ("Cannot connect to iTunes Store" code 0)

更新:问题自行解决。看来是 Apple 端的问题。


我正在尝试使用 StoreKit 测试应用内购买的实现:

但是,我遇到了一个奇怪的错误;尽管出现 App Store "Confirm your IAP" 警报,但交易立即失败。这是经过数小时调试后的概要:

  1. viewDidLoad 中,我将视图控制器实例 (self) 作为观察者添加到 SKPaymentQueue,并启动一个 SKProductsRequest,再次将其委托设置为self.
  2. productsRequest(_:didReceive:)中,我将SKProduct对象存储在视图控制器中。 UI 根据需要更新。
  3. 用户通过实例化 SKPayment 对象并将其添加到 SKPaymentQueue.
  4. 来点击购买产品的按钮
  5. paymentQueue(_:updatedTransactions:)收到一个交易对象transactionState.purchasing。目前一切顺利。
  6. App Store 对话框弹出并要求用户登录 iTunes,然后 "Confirm your IAP [Environment: Sandbox]"。
  7. 在后一个对话框弹出后,没有用户输入,paymentQueue(_:updatedTransactions:) 立即收到一个交易对象 transactionState 作为 .failederror 属性表示设备"Cannot connect to iTunes Store"错误码为0.

我已经尝试对新的 iTunes Connect 沙盒帐户和多个设备执行相同的操作,但结果始终相同。我该怎么办?

iTunes Connect上的IAP被标记为"Ready To Submit",所以我认为不是因为我没有在ITC上正确配置它。

Simplified Gist

编辑:详细说明,IAP 以前有效。我尝试了 运行 以前版本的代码,当它曾经工作时,但出现了同样的错误。

不是你。现在还有许多其他开发人员遇到同样的问题。最大的活动问题列表是 here.

问题出现时间恰逢iOS10.3和XCode8.3发布。随着 Apple Pay 在台湾推出。这是苹果后端服务器的问题。我们能做的最好的事情就是提交错误报告并等待。