android - 如何检测已取消或已退款的 Google 应用内结算订单?

标签 android google-play in-app-billing google-checkout

我有很多帖子和谷歌文档,但我仍然不清楚如何判断应用内购买已退款。我有红小心In-App Billing v3 - Don't detect refundDoes Google Play In-App Billing Version 3 support refunds? .

我相信我不久前通过复制和粘贴从谷歌官方文档中做了以下笔记:

purchaseState: The purchase state of the order. Possible values are 0 (purchased), 1 (canceled), or 2 (refunded).

现在,the official document具有以下内容:

->purchaseState:订单的购买状态。它总是返回 0-

(purchased).

更具体地说,如果 IAB 购买被退款或取消,它是否仍在 mHelper.queryInventoryAsync(mGotInventoryListener) 获取的用户库存中? 如果是这样,如何判断购买已取消或退款?

更新[2019-12-12]:

我已经测试了很多次并确认了以下内容:

如果订单在退款后取消,它将从 getPurchasesList 返回的结果中消失.发生这种情况所需的时间各不相同。可能需要几分钟到 10 多个小时。我认为这取决于 Google Play 何时刷新其缓存。似乎可以打开 Google Play 来刷新其缓存。在一种情况下,getPurchasesList退了10个多小时还是返回了,但是一打开Goog​​le Play就不退了。

最佳答案

你查过作废的采购 list API吗?它会返回已取消、退款或拒付的购买 list 。

https://developers.google.com/android-publisher/api-ref/purchases/voidedpurchases/list

关于android - 如何检测已取消或已退款的 Google 应用内结算订单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46543008/

相关文章:

java - Android - 缺少应用程序子类

android - 是否可以在 Android 应用程序安装期间强制执行 EULA?

android - 从多帐户模糊性中购买单个应用程序内商品

Android 应用内计费 Phonegap 1.0

android - 使用Android BillingClient,如何在重新安装或更改设备后恢复用户的IAP?

android - React Native,TouchableOpacity 包装 float 按钮一无所获

java - 如何在 NDK 中从 native 方法返回 "int array"到 java

android - 访问 joomla 网站的网络服务

java - 为什么在 Google Playstore 上发布应用程序后,数据无法从 Firebase 加载到应用程序中?

java - 检查是否从 Google Play 安装了应用程序