我的 Android 应用程序中有一个“免费试用订阅”,购买订阅产品后,BillingService 将获得已购买状态。
但是,取消订阅后,BillingService 不会获得 Expired 状态。
但是,根据Android Developer,
“如有必要,用户可以在试用期内随时取消订阅。在这种情况下,Google Play 会将订阅标记为立即过期,而不是等到试用期结束。”
但我的应用程序没有获得状态。
我想知道在试用期内取消订阅后,android 应用程序何时会获得“过期”状态。
我的 Android 应用程序中有一个“免费试用订阅”,购买订阅产品后,BillingService 将获得已购买状态。
但是,取消订阅后,BillingService 不会获得 Expired 状态。
但是,根据Android Developer,
“如有必要,用户可以在试用期内随时取消订阅。在这种情况下,Google Play 会将订阅标记为立即过期,而不是等到试用期结束。”
但我的应用程序没有获得状态。
我想知道在试用期内取消订阅后,android 应用程序何时会获得“过期”状态。
我也注意到了这一点。就我而言,购买状态仅在(7 天)试用期结束时发生变化,即使我在购买试用订阅后几分钟内取消了。
我目前正在等待另一个取消的试用期到期 - 现在已经 3 天了,购买状态仍然是 0(“购买成功”)。
更新: 所以看来您要么需要定期恢复交易(谷歌说你不应该这样做“因为性能影响”),或者你需要一个带有代码的网络服务器来使用服务器端 API http:检查订阅详细信息: //developer.android.com/google/play/billing/v2/billing_subscriptions.html#play-dev-api。然后,您的应用程序将查询您的网络服务器,该服务器只会在到期日期到期时检查 Google 的服务。
我已经在非测试环境(即生产环境)中测试了这个案例。
在取消订阅大约 4 小时后,我收到了带有 EXPIRED 状态的 ACTION_PURCHASE_STATE_CHANGED 通知。(购买后几分钟我取消了订阅。试用期为 7 天)
在 EXPIRED 通知返回“已拥有”几次后尝试重新购买订阅,之后我能够重新购买(没有试用期,如记录所示)。
我没有实现 Google 服务器 API,所以我不知道状态会是什么。但是,在商家网站上,订单和订单 CSV 下载将商品显示为已收费。
那么,自上一个答案以来发生了什么变化?
一旦我实现了谷歌服务器 API 查询,我将更新这个答案。
更新:
我已经实施了 Google Server API 检查,它正确显示订阅在购买后几分钟被取消。此 API 检查是在购买后 3 天完成的,在 7 天的试用期内。
我此时的结论是,试用期内的用户取消操作由 Google 正确处理。