Android &引用;您已经拥有此项目“quot;但是getPurchases是空的

Android &引用;您已经拥有此项目“quot;但是getPurchases是空的,android,in-app-billing,Android,In App Billing,我昨天购买了订阅(不是托管产品或非托管产品)进行测试,我退款,然后取消订阅。退款和取消后,当我打电话时: m_billingService.getPurchases(3, m_context.getPackageName(), ITEM_TYPE_SUBS, null) 它将以0(有效/确定)的购买状态返回我的购买。今天,当我调用相同的方法时,它什么也不返回。然而,当我试图购买该商品时,谷歌play商店回应说我已经拥有该商品 我已经重新启动了android设备,清除了google play服务

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

m_billingService.getPurchases(3, m_context.getPackageName(), ITEM_TYPE_SUBS, null)
它将以
0
(有效/确定)的购买状态返回我的购买。今天,当我调用相同的方法时,它什么也不返回。然而,当我试图购买该商品时,谷歌play商店回应说我已经拥有该商品

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


这个问题以前有人问过,但总是在产品而不是订阅的背景下。这些帖子的答案似乎是“消费”产品;订阅不会被消费。

当您
取消订阅购买和/或
退款订阅购买时,订阅不会立即终止,直到到期为止

相反,您必须
撤销
订阅购买,以提供退款并立即终止订阅


有关
取消
退款
撤销
方法的更多信息,请参阅。

我相当肯定,您尝试的方式不可能实现。由于我不确定订阅长度,谷歌可能认为你仍然是订阅的所有者,因为即使你开始退款,订阅在剩余的时间内仍然有效

这允许用户从购买中获得退款,但仍能获得服务。这将由应用程序所有者自行决定。如果您希望处理用户的有效投诉,并且允许他们保持访问权限,直到您能够解决他们的问题或投诉,那么这是一个很好的策略。这也有助于将评级不佳的影响降至最低

为了做你想做的事情,你需要撤销订阅,这将立即终止它。在此之后,调用m_billingService.getPurchases()应该可以正常工作


我很确定用户取消订阅后,订阅将一直保持活动状态,但我不确定用户退款时会发生什么。。。