为什么安卓计费客户端v2慢速信用卡测试从不取消?



我正在为非消耗性应用内购买实施新的计费客户端库 (v2.1.0(。 我正在测试测试用户的待处理事务。它适用于"信用卡在几分钟后批准",但对于"信用卡速度慢,几分钟后拒绝",购买状态始终处于待处理状态(在 Play 管理中心显示为已取消后等待数小时(。

为了检索购买状态,我调用mBillingClient.queryPurchases(BillingClient.SkuType.INAPP)作为文档中的状态

以前有人遇到过这个问题吗?这是开发环境问题还是最终用户也会出现?

谢谢!

在我的测试中,我也发现了这一点,尽管我还记得使用已弃用的 AIDL,我的应用程序的用户需要 24 小时来验证购买。我已经考虑过可能会发生拒绝慢卡时间的情况,我已经做了以下工作:

如果purchase.getPurchaseState() == Purchase.PurchaseState.PENDING,那么我会显示一个对话框,上面写着:等待购买验证。有时它可以持续几个小时

如果用户尝试再次购买该项目并billingResult.getResponseCode() == BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED则我会显示一个对话框,上面写着:无法购买该项目。您已经拥有它,或者之前的购买仍在等待验证

希望会有所帮助

我遇到了同样的问题。在launchBillingFlow你会得到一个BillingResponseCode.ITEM_ALREADY_OWNED.购买退货PurchaseState.PENDING。如果您立即consumeAsync,它的响应是BillingResponseCode.DEVELOPER_ERROR,但是几分钟后(或事务失败所需的任何延迟(,您可以再次consumeAsync然后返回BillingResponseCode.ITEM_NOT_OWNED,现在您可以再次重试launchBillingFlow。就像路易斯·费利萨特说的那样,创建一个对话框来要求用户清除挂起,

它实际上在几分钟后下降。我意识到,如果您在 Play 管理中心查看"订单管理",您会看到它已经被拒绝了。

问题是谷歌播放计费的本地缓存。我想更新此缓存以进行计费测试的优先级非常低,您可以像这样清除它:

adb shell pm clear com.android.vending

最新更新