Android 应用内结算订阅状态更改回调

标签 android in-app-purchase google-play in-app-billing subscription

我正在编写一个支持应用内订阅的应用。订阅将使我的用户能够在 Android 世界之外使用许多服务和优势。我知道我可以使用 Google Play Developer API 来查询订阅状态,但由于所提供服务和权益的性质,这样做并不是很方便。我想知道是否有一种方法可以在订阅状态发生变化时得到通知。例如网络 Hook 之类的东西。

最佳答案

我想发表评论来回应你的评论,但显然这太长了。除此之外,它也是对您问题的一种回答,所以我认为将其作为答案发布可能是一件好事。也许它甚至可以解决您的问题。

那么,关于您的评论。你不一定非得那样做。现在,我不知道您的系统要求,但我会分享我的要求,希望它能帮助您。

在您的服务器(数据库表)上保存UsersSubscriptions。在 Subscriptions 表中有一个 check_at 列,此外还有一个 renew_at 列。假设用户在 1 月 1 日创建了月度订阅。第一天,您在购买完成后从 Android 调用服务器,保存订阅详细信息,然后将 renew_at 设置为 2 月 1 日,将 check_at 设置为 2 月 4 日,考虑到您在 Google Play Developer Console 中设置交易失败延迟 3 天。这样,如果 1 日付款失败,用户可以在 2 月 1 日至 2 月 3 日期间更改信用卡详细信息。然后在 4 日,您将检查 Google Play API 以获取订阅详细信息。但不要在 2 月 1 日至 4 日期间禁用高级功能。如果取消订阅,请在 4 日禁用它。这样,优质内容就不会被延迟或以任何方式被篡改。如果 API 返回的订阅结束日期是 future 的日期,那么它已被续订,因此您应该保持高级激活状态。现在,您可能会问如何在每月 4 号检查它。使用某种调度程序在数据库上安排任务。

这样您就无需依赖网络钩子(Hook)。尽管我同意,webhook 会更高效,甚至可能更容易实现。

如果您有任何问题或我描述的系统存在一些缺陷,请告诉我。

关于Android 应用内结算订阅状态更改回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30120265/

相关文章:

Android 电子市场应用程序更新

安卓市场 : problems with details page

java - 是否允许在 Android 公开版本上进行任何登录?

java - 终止应用程序后继续运行计时器

java - 使用单例创建监听器对象不起作用

android - 当 TabActivity 被弃用时我该怎么办?

java - 如何根据Android布局中的layout_width指定layout_height值?

android - 获取订阅 android 的账单详细信息?

ios - App购买中的自动续订订阅

ios - 如何在 iOS 中升级(而不是更新)应用程序?