9

我的 Android 应用程序中有一个“免费试用订阅”,购买订阅产品后,BillingService 将获得已购买状态。

但是,取消订阅后,BillingService 不会获得 Expired 状态。

但是,根据Android Developer

“如有必要,用户可以在试用期内随时取消订阅。在这种情况下,Google Play 会将订阅标记为立即过期,而不是等到试用期结束。”

但我的应用程序没有获得状态。

我想知道在试用期内取消订阅后,android 应用程序何时会获得“过期”状态。

4

2 回答 2

6

我也注意到了这一点。就我而言,购买状态仅在(7 天)试用期结束时发生变化,即使我在购买试用订阅后几分钟内取消了。

我目前正在等待另一个取消的试用期到期 - 现在已经 3 天了,购买状态仍然是 0(“购买成功”)。

更新: 所以看来您要么需要定期恢复交易(谷歌说你不应该这样做“因为性能影响”),或者你需要一个带有代码的网络服务器来使用服务器端 API http:检查订阅详细信息: //developer.android.com/google/play/billing/v2/billing_subscriptions.html#play-dev-api。然后,您的应用程序将查询您的网络服务器,该服务器只会在到期日期到期时检查 Google 的服务。

于 2012-12-22T09:29:10.503 回答
1

我已经在非测试环境(即生产环境)中测试了这个案例。

在取消订阅大约 4 小时后,我收到了带有 EXPIRED 状态的 ACTION_PUR​​CHASE_STATE_CHANGED 通知。(购买后几分钟我取消了订阅。试用期为 7 天)

在 EXPIRED 通知返回“已拥有”几次后尝试重新购买订阅,之后我能够重新购买(没有试用期,如记录所示)。

我没有实现 Google 服务器 API,所以我不知道状态会是什么。但是,在商家网站上,订单和订单 CSV 下载将商品显示为已收费。

那么,自上一个答案以来发生了什么变化?

  1. 生产环境与谷歌测试环境
  2. 可能是谷歌错误修复

一旦我实现了谷歌服务器 API 查询,我将更新这个答案。

更新:

我已经实施了 Google Server API 检查,它正确显示订阅在购买后几分钟被取消。此 API 检查是在购买后 3 天完成的,在 7 天的试用期内。

我此时的结论是,试用期内的用户取消操作由 Google 正确处理。

于 2013-03-29T08:55:42.900 回答