如何确定用户是否取消Google Play订阅?

时间:2016-06-04 23:27:12

标签: android google-play subscriptions google-play-developer-api

关于在我们的Android应用中构建订阅产品,但有一点不清楚了解已取消订阅的最佳方式。我们计划让用户取消的唯一方法是让他们访问Google Play商店并明确取消,但在这种情况下,我们的后端不会收到通知。

Google Play Developer API文档明确表示您不能在API中查询所有订阅的状态,那么我们应该如何知道哪些用户取消了订阅?

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:13)

根据In-App订阅文档,没有机制可以检测用户何时取消订阅。因为它没有立即取消。相反,它等待订阅过期的周期结束。

摘自文件(source

  

当用户取消订阅时,Google Play不会提供   退款当前的结算周期。相反,它允许用户   可以访问已取消的订阅,直到当前结束   结算周期,此时它终止订阅。对于   例如,如果用户购买了每月订阅并取消订阅   在周期的第15天,Google Play会考虑订阅   有效期至第30天(或其他日期,具体取决于   月)

当用户取消订阅时,应用不会收到任何类型的通知。

订阅的行为是在您查询应用程序中的库存时,如果订阅有效,将返回SKU。订阅到期时,查询库存时不会返回SKU。

根据此link

中的文档

只要订阅接近结束,就可以运行批量查询

摘自文件(source):

  

仅在到期时查询订阅状态 - 一旦您的服务器   已经检索到订阅令牌的到期日期,它应该   不再向Google Play服务器查询订阅状态   直到订阅达到或已经过期。   通常,您的服务器每天都会运行批处理查询来检查   过期订阅的状态,然后更新数据库

以下服务器api允许您查询订阅状态:

https://developers.google.com/android-publisher/api-ref/purchases/subscriptions#resource-representations

变量autoRenewingcancelReason会通知您订阅是否已取消。

通过使用上述API,您将能够实现一个系统,其中可以查询即将到期的订阅状态,然后确定它们是否被取消。

有关订阅取消的详细信息,请访问link

注意:
文档指出,只要用户具有有效订阅,您就应该继续提供内容。如果您计划拒绝访问该内容,如果有人取消订阅将违反Google政策

摘自文件(source

  

重要提示:在所有情况下,您必须继续提供该内容   您的订阅者已经通过他们的订阅购买了这么长时间   任何用户都可以访问它。也就是说,你不能删除任何   内容,而任何用户仍然有一个有效的订阅,即使   该订阅将在当前结算时终止   周期。

答案 1 :(得分:4)

看起来现在可以接收有关订阅更改的服务器端通知(续订,取消......):

  

应用内结算API提供服务器推送通知,使开发人员能够监控Play管理的订阅的状态更改。

有关详情,请参阅此页:https://developer.android.com/google/play/billing/billing_subscriptions.html#realtime-notifications