Android 应用内结算:退款的应用内购买未取消
Posted
技术标签:
【中文标题】Android 应用内结算:退款的应用内购买未取消【英文标题】:Android In-App Billing: Refunded in-app purchases not cancelled 【发布时间】: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 日,这个问题仍然存在。有人设法解决这个问题吗? 【参考方案1】:根据documentation,目前,应用内结算 API 不支持从购买应用内以编程方式取消订阅。然后在用户取消订阅后,订阅仍然有效,直到到期日期。因此,它在 Play Store 应用程序中一直可见,直到订阅到期。您可以查看support page 了解更多信息。
【讨论】:
OP 讲述的是项目,而不是订阅。 谢谢,阿比利塔!是的,对于订阅,但我想做的是取消一次性购买的物品。【参考方案2】:如果您的取消不会从查询结果中删除您的购买,您可以消费它们。当您进行新查询并可以再次购买时,它们将不再可用。
int response = client.consumePurchase(3, packageName, purchaseToken);
托管的应用内商品是消耗品,但订阅不是。
来源:developer.android.com
【讨论】:
谢谢,jekatt!看来我们只能用它来刷新用户的购买了。以上是关于Android 应用内结算:退款的应用内购买未取消的主要内容,如果未能解决你的问题,请参考以下文章
Amazon Live Testing 工具中的应用内购买退款