android - "You already own this item"但 getPurchases 为空

标签 android in-app-billing

<分区>

我昨天购买了一个订阅(不是托管产品非托管产品)来测试,我自己退款然后取消了订阅。退款和取消后,当我打电话时:

m_billingService.getPurchases(3, m_context.getPackageName(), ITEM_TYPE_SUBS, null)

它会以 0(有效/正常)的购买状态退回我的购买。今天,当我调用相同的方法时,它什么也没有返回。然而,当我尝试购买该商品时,Google Play 商店回应说我已经拥有该商品。

我已经重启了 android 设备,清除了 google play 服务缓存并确保只有测试帐户在我的手机上激活(即,我删除了我的 google 开发者帐户)。

之前已经有人问过这个问题,但始终是在产品而非订阅的背景下提出的。这些帖子的答案似乎是“消费”产品;不消耗订阅。

最佳答案

我相当确定您尝试做的事情不可能按照您尝试做的方式进行。由于我不确定订阅时长,因此对于 Google 而言,您可能确实仍然是订阅的所有者,因为即使您发起退款,它在剩余期限内仍然有效。

这允许用户从购买中获得退款,但仍能获得服务。这将由应用程序所有者自行决定。如果您想要处理提出有效投诉的用户,同时允许他们保持访问权限,直到您解决他们的问题或投诉,这可能是一个很好的策略。它还可以帮助最大程度地减少不良评级的影响。

为了执行您想要的操作,您需要撤销订阅,这将立即终止订阅。调用 m_billingService.getPurchases() 后应该可以正常工作。

Documentation

关于android - "You already own this item"但 getPurchases 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25694829/

相关文章:

android - 如何在 Android 上关闭屏幕?

Android Studio 3.0 Canary 1 GRPC 错误

Android 应用内购买问题

android - 无效的空头购买代币

android - CollapsingToolbarLayout 不适用于 NestedScrollView

android - google play 游戏成就重置(每天)

android - 谷歌播放错误 "Error while retrieving information from server [DF-DFERH-01]"

Android InApp Billing : The item you requested is not available for purchase. 在不同的谷歌账户上不一致

android - Google Play 中的测试订单会在五分钟后自动退款

android - 如何在早上的 alarmManager 中创建 setRepeating?