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

Swift In-App purchases sandbox tester error

我今天实现了应用内购买功能,我只是按照教程一步一步,创建沙盒测试器,编写代码,它说

<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")
           }
       }
   }

检查以下几点

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

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

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

那么交易应该是成功的。