Loi*_*int 8 in-app-billing in-app-subscription
我正在研究使用Google Play在应用结算中实施自动续订订阅的方法.我阅读了https://developer.android.com/google/play/billing/billing_subscriptions.html并查看
结算以指定的间隔和价格无限期地继续.在每次续订时,Google Play会自动向用户帐户收费,然后通过电子邮件通知用户这些费用.对于月度和年度订阅,结算周期将始终根据购买日期与订阅周期匹配.(季节性订阅每年收费,在季节的第一天.)
订阅付款获得批准后,Google Play会通过应用内结算API向购买应用提供购买代币.您的应用可以在本地存储令牌或将其传递给后端服务器,后端服务器可以使用它来使用Google Play Developer API远程验证或取消订阅.
那么有什么方法可以让我的服务器知道用户的订阅何时更新?而不是谷歌播放发送新的账单订阅到Android应用程序之后,该Android应用程序将此新账单发送到我的服务器只是为了验证.
谷歌播放时可以在用户订阅续订时向我的服务器发送通知,例如通过电子邮件通知用户?我想谷歌播放发送给我一个通知,用户的订阅自动续订,以便我的后端将更新到期应用程序增加他们的订阅.每次用户打开商店时都不需要Android应用程序检查账单来检查是否有来自goole的新账单充电自动化.它实施吗?
我的工作跟进
那可能吗?
[更新]推荐来自goolge play api doc
建议:在您的应用中包含业务逻辑,以通知您的后端服务器订阅购买,令牌以及可能发生的任何计费错误.您的后端服务器可以使用服务器端API查询和更新您的记录,并在需要时直接跟进客户.
如何实施谷歌API,任何文档或教程的推荐?
我目前有完全相同的问题。谷歌的概念并不完善。有可能通知您的后端服务器有关金融交易的信息(请参阅此处),但我不建议这样做。您的业务交易依赖于许多 Google 服务和您的服务器正常运行时间。如果出现任何问题或出现故障或其他问题,您将不会收到通知,并且您的后端业务逻辑将不再起作用。
你提到的谷歌推荐也很糟糕。如果存在自动更新(向您的应用程序提供新的购买令牌)并且用户从未打开您的应用程序,会发生什么情况。那么新的订阅数据将永远不会传输到您的服务器。如果您从未获得过新令牌,您如何检查用户是否仍然是订阅者,因为这个有限的 Google Play Developer API 愚蠢地需要一个 purchaseToken 作为参数(请参阅此处),只要用户不这样做,您就永远不会获得自动续订后至少打开一次您的应用程序(将其提交到您的服务器)。
我想以这种方式实现这一点:
1.) 我通过 cron 作业不断检查购买记录。购买记录是一个数据库条目,其中包含来自初始订阅的所有数据(orderId、purchaseToken 等,服务器上的安全验证过程所需的所有数据)。每个购买记录都连接到我后端系统中的用户帐户(某些用户 ID)。只要purchaseRecord的autoRenewing属性不为false,订阅就是有效的。即使到期时间Millis 超出,这个用户仍然可以有一个有效的订阅,因为我上面描述的用例:订阅将由谷歌自动续订,但用户从未打开应用程序,因此不会将传输令牌发送到您的服务器,您仍然没有被告知订阅更新。
2.) 如果用户在任何时候取消订阅,则autoRenewing将随时为假。这意味着订阅确实会在expiryTimeMillis结束。
3.) 当用户打开您的应用程序并将新的purchaseToken 转移到您的后端时,您将获得一个新的购买记录,该记录再次连接到具有他的用户ID 的用户帐户。用户现在可能有 2 条购买记录。旧的和新的。如果是这样,您可以删除旧的,并在步骤 1 中对新的购买记录重复相同的过程。
到目前为止我还没有实现这个概念,所以我不知道这是否真的像这样。也许这可以以不同的方式运作,但也许这是朝着正确方向迈出的一步。
| 归档时间: |
|
| 查看次数: |
2783 次 |
| 最近记录: |