Swift 应用内购买沙盒测试器错误

时间:2021-03-05 02:19:47

标签: swift testing in-app-purchase sandbox

我今天正在实现应用内购买功能,我只是按照教程一步一步来,创建沙盒测试人员,编写代码,然后说

<SKPaymentQueue: 0x282e50860>: Payment completed with error: Error Domain=ASDServerErrorDomain Code=3502 "This item is not available." UserInfo={NSLocalizedDescription=This item is not available.

为什么是“此项目不可用。”?我在网上搜索了相关信息,但没有答案。

这是我的代码

@IBAction func purchaseButtonPressed(_ sender: UIButton) {
       print("PRESSED")
       purchaseApp()
   }
   
   func purchaseApp() {
       let productID = "com.crazycat.Reborn.FullFuctionalities"
       if SKPaymentQueue.canMakePayments() {
           let paymentRequest = SKMutablePayment()
           paymentRequest.productIdentifier = productID
           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 {
               print("Thanks for shopping")
           } else if transaction.transactionState == .failed {
               print("purchase Failed")
           }
       }
   }

2 个答案:

答案 0 :(得分:0)

检查以下几点

  • 使用您在开发者控制台中指定的相同测试帐户。
  • 确保应用内产品在开发者控制台上显示“准备提交”状态。
  • 确保应用内商品 ID 与您在应用中使用的商品 ID 相匹配。

答案 1 :(得分:0)

我遇到了同样的问题。 请确保您在 Appstore connect 中的付费应用协议处于活动状态且未过期。检查 App Store 连接中是否有任何警告。填写您的 App Store Connect 付费应用协议中的所有银行、税务和联系信息。

然后在您的物理设备上从 Xcode 重新启动该应用。

那么交易应该是成功的。