26

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

Google Play 开发者 API 文档明确表示您不得向 API 查询所有订阅的状态,那么我们应该如何知道哪些用户取消了他们的订阅?

非常感谢任何帮助!

4

2 回答 2

20

根据应用内订阅文档,没有检测用户何时取消订阅的机制。因为它不会立即取消。相反,它等待订阅到期的周期结束。

文件摘录(来源

当用户取消订阅时,Google Play 不会为当前的结算周期提供退款。相反,它允许用户在当前计费周期结束之前访问已取消的订阅,届时它会终止订阅。例如,如果用户购买了每月订阅并在周期的第 15 天取消它,Google Play 将认为订阅在第 30 天(或其他日期,具体取决于月份)结束之前有效

当用户取消订阅时,应用程序不会收到任何通知。

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

根据此链接中的文档

只要订阅接近尾声,就可以运行批处理查询

文件摘录(来源):

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

以下服务器 api 可让您查询订阅状态:

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

autoRenewing如果订阅已被取消,这些变量cancelReason会通知您。

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

取消订阅的详细信息可在此链接中找到。

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

文件摘录(来源

重要提示:在任何情况下,您都必须继续提供订阅者通过其订阅购买的内容,只要任何用户都能够访问它。也就是说,您不得在任何用户仍然有效订阅内容时删除任何内容,即使该订阅将在当前计费周期结束时终止。

于 2016-06-14T10:31:16.517 回答
8

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

In-app Billing API 提供服务器推送通知,使开发人员能够监控 Play 管理订阅的状态变化。

有关更多详细信息,请参阅此页面:https ://developer.android.com/google/play/billing/billing_subscriptions.html#realtime-notifications

于 2017-10-19T14:19:22.257 回答