关于在我们的Android应用中构建订阅产品,但有一点不清楚了解已取消订阅的最佳方式。我们计划让用户取消的唯一方法是让他们访问Google Play商店并明确取消,但在这种情况下,我们的后端不会收到通知。
Google Play Developer API文档明确表示您不能在API中查询所有订阅的状态,那么我们应该如何知道哪些用户取消了订阅?
非常感谢任何帮助!
答案 0 :(得分:13)
根据In-App订阅文档,没有机制可以检测用户何时取消订阅。因为它没有立即取消。相反,它等待订阅过期的周期结束。
摘自文件(source)
当用户取消订阅时,Google Play不会提供 退款当前的结算周期。相反,它允许用户 可以访问已取消的订阅,直到当前结束 结算周期,此时它终止订阅。对于 例如,如果用户购买了每月订阅并取消订阅 在周期的第15天,Google Play会考虑订阅 有效期至第30天(或其他日期,具体取决于 月)
当用户取消订阅时,应用不会收到任何类型的通知。
订阅的行为是在您查询应用程序中的库存时,如果订阅有效,将返回SKU。订阅到期时,查询库存时不会返回SKU。
根据此link
中的文档只要订阅接近结束,就可以运行批量查询
摘自文件(source):
仅在到期时查询订阅状态 - 一旦您的服务器 已经检索到订阅令牌的到期日期,它应该 不再向Google Play服务器查询订阅状态 直到订阅达到或已经过期。 通常,您的服务器每天都会运行批处理查询来检查 过期订阅的状态,然后更新数据库
以下服务器api允许您查询订阅状态:
变量autoRenewing
和cancelReason
会通知您订阅是否已取消。
通过使用上述API,您将能够实现一个系统,其中可以查询即将到期的订阅状态,然后确定它们是否被取消。
有关订阅取消的详细信息,请访问link。
注意:强>
文档指出,只要用户具有有效订阅,您就应该继续提供内容。如果您计划拒绝访问该内容,如果有人取消订阅将违反Google政策
摘自文件(source)
重要提示:在所有情况下,您必须继续提供该内容 您的订阅者已经通过他们的订阅购买了这么长时间 任何用户都可以访问它。也就是说,你不能删除任何 内容,而任何用户仍然有一个有效的订阅,即使 该订阅将在当前结算时终止 周期。
答案 1 :(得分:4)
看起来现在可以接收有关订阅更改的服务器端通知(续订,取消......):
应用内结算API提供服务器推送通知,使开发人员能够监控Play管理的订阅的状态更改。
有关详情,请参阅此页:https://developer.android.com/google/play/billing/billing_subscriptions.html#realtime-notifications