应用内结算 - 当queryPurchases()返回空列表时,Google Play会向我显示“您已拥有此项目”消息

问题描述 投票:3回答:1

我只是为一件商品进行了一次测试购买,但由于我的Wi-Fi死了,它失败了,但由于某些原因Google Play然后给了我一条消息,说明该订单正在等待或者我应该在某些链接上查看它(我忘了把它写下来)。

当我尝试再次购买相同的测试时,Google Play向我提供了“您已拥有此项目”错误。所述购买不在Google Play信息中心的订单历史记录中。

发生了什么,我该如何解决这个问题?

编辑:清除Google Play商店缓存,清除Google服务框架缓存,然后重新安装该应用无效。


编辑2:

我设法通过强制停止Google Play商店应用,清除其数据,然后重新启动它来解决此问题。现在,我只能得出结论,Wi-Fi断开时的购买是在Play商店应用的数据中,而不是缓存中。

因此,我的问题变成:开发人员有责任处理这种特殊情况(当解决方案不在应用程序本身内时),以及如何处理它?

google-play in-app-purchase in-app-billing
1个回答
1
投票

我有完全相同的问题,我收到错误消息,我已经拥有此项目,但getPurchases调用返回一个空列表。最终为我工作的是获取购买历史记录(如果此列表为空),并将购买令牌用于上次购买此特定产品ID并将其用于消费:

mService.getPurchaseHistory(version, packageName, "inapp", null, new Bundle());

请记住,历史记录包含上次购买此用户的每种产品类型的信息,因此请务必将产品ID与相关产品ID进行比较。

© www.soinside.com 2019 - 2024. All rights reserved.