如何解决Android Billing Library v3 - 许可证测试中的帐户,项目停留在已购买
在这里搜索 StackOverflow 后,我似乎遇到了一些建议的修复方法都不起作用的问题(除了下面提到的一个)。
我不使用测试 SKU (android.test.*
),但在应用程序的游戏商店控制台中制作了我自己的测试 SKU。我将手机/平板电脑的主要 Google 帐户添加到 Play 管理中心的许可证测试中。此帐户不是我的开发者帐户。 此产品为一次性购买,非消耗品。
我的第一次测试,我开始购买,然后弹出了预期的两张信用卡(“测试卡,总是批准”和“测试卡,总是拒绝”)。选择了批准卡,一切都按预期进行 -
- 订单出现在我开发者的 Play 管理中心中。
- 应用程序识别购买,我的代码正确处理了它。 (耶)
现在,当我再次尝试购买时,我收到了代码 ITEM_ALREADY_OWNED。
我所做的一切都是为了解决这个问题 -
- 根据this documentation,它说取消/退款购买。所以,我做到了。
- 某些报告(例如 StackOverflow 上的此处)建议清除 Play 商店缓存 (
adb shell pm clear com.android.vending
)。
这些都不允许我再次购买该商品。
我没有做的一件事是添加所有代码来“使用”产品,坦率地说,这似乎对测试适得其反。 (添加可能有问题的代码,然后在成功测试后删除相同的代码,这可能会引入其他问题..)
我主要担心的是,如果我为购买退款,它真的不应该告诉我的应用仍然购买了某件商品 - 因为坦率地说,它不再是:我退款了。
我的第二个担心点是正确测试这一点,而不必临时或永久性地为消耗品 SKU 添加代码。
是否有其他方法可以删除我丢失的“已购买”商品?还是我没有正确设置测试帐户或测试许可证条目?
解决方法
一个产品只能购买一次,如果你想让用户再次购买它,你必须先调用billingClient.consumeAsync()
,然后billingClient.queryPurchases()
会返回用户不拥有该产品项目然后他可以再次购买
您可以仅将 consumeAsync()
用于测试,然后在最终版本中禁用该部分,这是我通常所做的。
您的代码决定了产品是否为消费品。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。