我的Android应用中有一个“免费试用订阅”,BillingService会在购买订阅产品后获得购买状态。
但是,BillingService在取消订阅后没有获得Expired状态。
但是,请加入Android Developer,
“如有必要,用户可以在任何时候取消订阅 试用期。在这种情况下,Google Play会将订阅标记为 立即过期,而不是等到审判结束 周期“。
但我的应用无法获得状态。
我想知道在试用期内取消订阅后Android应用程序何时获得“已过期”状态。
答案 0 :(得分:6)
我也注意到了这一点。在我的情况下,购买状态仅在(7天)试用期结束时更改,即使我在购买试用订阅的几分钟内取消。
我正在等待另一个取消的试用期到期 - 现在已经过了3天,购买状态仍为0(“已成功购买”)。
<强>更新强> 因此,您似乎需要定期恢复交易(Google表示您不应该“因为性能影响而”)或者您需要一个带代码的Web服务器来使用服务器端API检查订阅详细信息{{3} }。然后,您的应用会查询您的网络服务器,该服务器只会在到期日期后检查Google的服务。
答案 1 :(得分:1)
我已经在非测试环境(即生产环境)中测试了这种情况。
我在取消订阅后大约4小时收到了一个带有EXPIRED状态的ACTION_PURCHASE_STATE_CHANGED通知。 (我在购买后几分钟取消了订阅。试用期为7天)
在EXPIRED通知返回“已经拥有”几次后尝试重新购买订阅,之后我能够重新购买(没有试用期,如文档所示)。
我没有实施Google服务器API,所以我不知道状态是什么。但是,在商家网站上,订单和订单CSV下载会将商品显示为已收费。
那么,自上次回答以来发生了什么变化?
实施Google服务器API查询后,我将更新此答案。
<强>更新强>
我已经实施了Google Server API检查,并且在购买后几分钟内正确显示订阅已取消。此API检查在购买后3天完成,在7天试用期内完成。
此时我的结论是,试用期内的用户取消是由Google正确处理的。