【发布时间】:2018-08-16 09:39:45
【问题描述】:
我在测试应用内结算时遇到问题。
(使用 Google Play 应用内结算版本 3 API)
问题:
在BillingClient.queryPurchases()提供的购买列表中仍然存在退款的应用内购买。
当我在一月份尝试对购买的商品进行退款时,退款的商品已从购买清单中消失。
我做了什么:
- 作为测试人员购买了一些物品。
(我很确定有一个对话框说这是一次测试购买。) - 之后在 Google Play 管理中心退款。
- 等到他们的付款状态变为“已退款”。
- 已清除 Google Play 服务和 Google Play 的缓存。
- 在我的应用中查看了
BillingClient.queryPurchases()提供的购买。 - 等了几天。重新安装了我的应用程序。所有这些都不起作用。
最小校验码:
private val client: BillingClient // provided
fun check() {
// client.startConnection() already completed here
client.queryPurchases(BillingClient.SkuType.INAPP)
.run {
purchasesList
.map { it.originalJson }
.forEach { Log.d("billing", "json = $it") }
}
}
我想做的事:
我想取消我所有的测试购买。
有人有什么建议吗? 提前谢谢你。
【问题讨论】:
-
不幸的是,我可以确认这种行为。我已经等了 7 天,在查询我的 InApp 购买时,我的退款购买仍然可用。 (使用新的 BillingClient api)。然后我通过 mBillingClient.consumeAsync() 消费了应用内购买并再次尝试。我购买了新的 InApp 并退款。我现在已经等了 3 天了,在应用程序中仍然可以购买...
-
问题仍然存在,退款购买的商品仍然可以按购买方式返回(至少对于测试帐户而言)。尝试重新启动,尝试等待一周,尝试从测试帐户中删除帐户 - 没有任何帮助。
-
谢谢,大家都回答了。我咨询了支持团队。没有办法取消退款的购买,所以我们必须手动消费它们。我们有 API 来收集取消的项目:developers.google.com/android-publisher/voided-purchases 这就是我目前所得到的......
-
有人找到解决方案了吗?因为这是一个非常大的问题。一旦任何用户购买高级版本并取消/退款,那么他将成为终身高级用户。实际上应用计费本身应该处理所有这些。
-
5 月 11 日,这个问题仍然存在。有人设法解决这个问题吗?
标签: android google-play google-play-services android-billing play-billing-library