Android 应用内结算订阅购买出现错误 [DF-AA-20]

标签 android in-app-purchase in-app-billing

我有应用内结算订阅可供用户使用,我想测试并确保逻辑按预期工作。但是,我无法这样做。

注意:

有很多与 In-App Billing not working 相关的 SO 问题,特别针对这个错误:

Error while retrieving information from server [DF-AA-20]

比如可以查到: - here , 和 - [此处][2],以及 - here , 和 - here

总结,所有解决方案都与要求的某些缺失部分有关。

一个突出的问题是应用程序在未发布到至少 Alpha 测试轨道(我已经完成)的情况下进行了测试。 这在后面的帖子中有详细说明。


文档:

实现

在 Android 应用中实现应用内结算的要求如下:

  • 在您的模块级 gradle 文件中添加最新的 BillingClient:

tutorial建议:

`implementation 'com.android.billingclient:billing:1.2.1`

Gradle 无法找到(2019 年 2 月 2 日)

我的适用于:

`implementation group:'com.android.billingclient', name:'billing', version:'1.2'`
  • 实现 BillingClient 为 Android (Google) 计费服务提供接口(interface)以进行购买。

这在详细的分步教程中定义here

测试:

在 Android 应用中测试您的应用内结算的要求如下:

对于单人测试

  • 对于应用内购买 单独测试,可以使用定义的静态测试响应来测试这些 here

  • 订阅不能单独测试,他们需要有其他条件

Note: Static responses cannot be used to test subscriptions.

与测试人员一起测试 ( see here for more )

  • 为测试创建一个开放/封闭轨道,并添加您希望允许进行测试的测试人员。将应用程序上传到相关的测试轨道,您必须发布。不再以草稿形式上传应用

Note: Previously you could test an app by uploading an unpublished "draft" version. This functionality is no longer supported. However, you can test your app with static responses even before you upload it to the Google Play Store. For more information, see Test with static responses.

参见 here更多详情,

  • 一次性订阅有更详细的解释 here

  • 订阅购买按预期工作,但订阅时间大大缩短以模仿订阅时间。阅读更多详情 here .

注意: 为了允许测试,应用程序必须至少在测试轨道上发布。这使得订阅可用于该版本的应用程序。

注释 2: 似乎许多用户在使用与他们的开发者帐户相同的 Google 帐户进行测试时遇到了问题。确保使用与您的开发者帐户不同的不同测试员帐户。参见 here了解详情

注释 3 我看到文档提到了使用公钥进行许可,但应用内购买教程在实现过程中并不需要它。我不确定这是否导致了我的问题

问题:

按照上述所有这些步骤,我无法成功购买订阅。

  • 我将测试应用下载到模拟器(启用了 Google Play 服务)。

测试帐户在下载之前还设置了卡支付方式。

  • 我继续购买订阅,然后显示以下内容:

enter image description here

我错过了什么吗?

最佳答案

对于测试,使用 SKU_ID 或 Product_ID 作为“android.test.purchased”,

还有一个库很好用,看看

https://github.com/anjlab/android-inapp-billing-v3

关于Android 应用内结算订阅购买出现错误 [DF-AA-20],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54491289/

相关文章:

ios - 应用发布响应用户操作后添加 '#define xxx'

ios - 应用内购买 : "Restore Purchases" button on user-bound purchase

android - IMarketBillingService 覆盖生成错误

android - Android 中的应用内购买 : Error response: 7 Item already owned

java - 在 Java 中从 XML 获取属性值

android - 启动时启动 Activity

cocoa - 消耗性订阅和不可更新订阅之间的实际区别

android - 检查android购买状态但返回未找到购买 token

android - 在 "None"中设置屏幕锁定设置

java - 将自定义属性添加到现有 View