1

我想测试我的后端服务器以确保我正确处理来自 Google.Apis.AndroidPublisher.v3.purchases.products.get 的响应。使用测试帐户启动计费流程时,我在 PurchasesUpdatedListener 中收到了 BillingClient.BillingResponseCode.ITEM_UNAVAILABLE 的响应代码。

以下是重现的步骤:

  1. 我正在使用 Galaxy 选项卡和 Android Studio 并在调试器中运行该应用程序
  2. 使用 billingClient.launchBillingFlow 启动购买对话框
  3. Android 购买对话框出现并显示错误:您请求的项目不可购买。
  4. 当用户在对话框中按下 OK 时,PurchaseUpdatedListener 会给出一个响应代码: billingResult.getResponseCode() = BillingClient.BillingResponseCode.ITEM_UNAVAILABLE

这是我已验证的内容:

  1. 正在购买的商品在 Google Play 管理中心中处于活动状态
  2. 调用 billingClient.querySkuDetailsAsync 时正确返回此项
  3. 我用来调试的平板电脑上的帐户是控制台上的许可证测试员
  4. 我在控制台的许可证测试器选项卡中尝试了 RESPOND_NORMALLY 和 LICENSED
  5. 版本代码与封闭测试轨道上上传的相同
  6. 平板电脑上的帐户有一张有效的信用卡

如果我使用应用内项目 android.test.purchased 尝试上述过程,那么一切正常。当用户使用假信用卡对话框按下购买按钮时,我得到正确的响应(billingResult.getResponseCode() = BillingClient.BillingResponseCode.OK)。

但是,在这种情况下,我不能使用 PurchasesUpdatedListener 提供的令牌,因为它是假的,而且 Google.Apis.AndroidPublisher.v3.purchases.products.get 给出了 400 错误。我需要真正的购买才能成功,这样我才能将其发送到我的服务器,以便它可以向 Google.Apis.AndroidPublisher.v3 发送一个真正的令牌以获得真正的响应。

根据此链接:https://developer.android.com/google/play/billing/test?authuser=1,我想做的事情是可能的。根据链接,该应用程序不必在 alpha 或 beta 测试轨道上,并且可以是侧面加载的调试版本。

有谁知道为什么我在测试期间得到一个 BillingClient.BillingResponseCode.ITEM_UNAVAILABLE ?

4

0 回答 0