google-play - 应用内结算 - 当 queryPurchases() 返回空列表时,Google Play 给我 "You already own this item"消息

标签 google-play in-app-purchase in-app-billing

我刚刚为一件商品进行了一次测试购买,它失败了,因为我的 Wi-Fi 没电了,但出于某种原因,Google Play 然后给了我一条消息,说订单正在等待处理之类的,我应该在某个链接上检查一下(我忘记了写下来)。

当我再次尝试进行相同的测试购买时,Google Play 提示我“您已经拥有此商品”错误。所述购买不在我的 Google Play 仪表板中的订单历史记录中。

这是怎么回事,我该如何解决?

编辑:清除 Google Play 商店缓存、清除 Google 服务框架缓存和重新安装应用程序不起作用。

编辑2:

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

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

最佳答案

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

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

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

关于google-play - 应用内结算 - 当 queryPurchases() 返回空列表时,Google Play 给我 "You already own this item"消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52960426/

相关文章:

java - 如何使用带有 Ruby 的服务器验证 Android 应用内计费?

java - 谷歌游戏控制台 : 'Your app signing key' s encryption strength does not meet Google Play's recommended minimum standard'

android - 我可以在 Google Play 商店中隐藏我的应用程序吗?

iOS 和 Firebase 自动更新订阅

iOS 应用程序仅在实时 IAP 购买初始化时崩溃

安卓 : in-app Billing problem- getting the order Id from the response

android - "Add New Product"谷歌播放中缺少选项

android - 安装Android应用程序时,应用程序数据恢复发生在什么时候

android - 在当前 Play 商店中上传置顶大图是否有意义?

ios - 购买产品时的应用内购买问题