我昨天购买了订阅(不是Managed Product
或Unmanaged Product
)进行测试,我退回了自己,然后取消订阅。退款和取消后,当我致电:
m_billingService.getPurchases(3, m_context.getPackageName(), ITEM_TYPE_SUBS, null)
它将以购买状态0
(有效/确定)返回我的购买。今天当我调用相同的方法时,它什么都不返回。然而,当我尝试购买该商品时,Google Play商店会回复我已经拥有该商品的商品。
我已经重新启动了Android设备,清除了Google Play服务缓存并确保只在我的手机上激活了测试帐户(即我删除了我的Google开发者帐户)。
之前已经问过这个问题,但总是在产品的背景下而不是订阅。这些帖子的答案似乎是“消费”产品;订阅不会被消费。
答案 0 :(得分:4)
我相当肯定你试图做的事情不可能像你想要做的那样。由于我不确定订阅长度,因此Google可能仍然是订阅的所有者,因为即使您发起退款,它仍会在剩余时间内保持有效。
这允许用户从购买中获得退款,但仍然可以接收服务。这将由应用程序所有者自行决定。如果您希望处理有效投诉的用户,并允许他们维持访问权限,直到您可以解决他们的问题或投诉,这可能是一个很好的策略。它还可以帮助最小化评级不佳的影响。
为了做你想做的事,你需要撤销订阅,这将立即终止它。在此调用之后,m_billingService.getPurchases()应该正常工作。
答案 1 :(得分:2)
当您cancel
和/或refund
订购时,订阅不会立即终止 - 它会在到期时间内有效。
相反,您必须revoke
购买订阅才能提供退款并立即终止订阅。
有关cancel
,refund
和revoke
方法的详情,请参阅this section of the Google Play API Reference。