如何在退款后撤销Android应用内非消耗品购买权限?

我目前正在测试我的 Android 应用程序(应用程序内支付的许可测试),需要多次重复购买和退款项目来测试它。最后一次,在发放退款时,我不小心忘记选中 Play Developer Console 中的“撤销权利”框(由于某种原因,默认情况下未选中)。现在,我的应用程序版本始终具有权利,我无法再测试购买它。

我知道无法通过网站撤销权利。似乎有一种方法可以通过 API 调用来实现,但是我没有应用程序的后端设置,并且无法弄清楚如何通过我的浏览器/curl 成功调用该函数(总是认证错误)。我的应用程序似乎无法区分购买的权利或已退款但未撤销的权利(我的Purchase对象getPurchaseState()调用总是返回Purchase.PurchaseState.PURCHASED),所以我不知道是否可以通过应用程序的代码库撤销它.

有什么办法可以撤销授权吗?授权自己进行 API 调用的过程对我来说是完全不透明的,但如果我能理解,这似乎是一条可行的途径。

回答

事实证明,我不得不走通过应用程序消费购买的路线。我通过Preference在“设置”窗格中添加一个仅限开发人员(通过根据 的值以编程方式添加新的首选项BuildConfig.Debug)专门用于撤销给定产品来做到这一点。单击后,该应用程序将:

  1. 获取所有Purchases的列表(通过BillingClient对象的queryPurchases方法)
  2. 找到Purchase我想要消费的产品的 SKU(如果存在)。
  3. 调用consumeAsyncmyBillingClient对象的方法,该方法接受购买令牌(由Purchase步骤 2 中的对象持有)。

一旦完成并得到验证,产品将立即被消费并撤销授予的权利(比通过 Google Play 开发者控制台退款快得多)。

小心不要让这个选项潜入您的release构建中,因为我认为它会在不退款的情况下撤销权利(对于不使用真钱的许可证测试人员来说不是问题,但会导致愤怒的客户)。


以上是如何在退款后撤销Android应用内非消耗品购买权限?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>