我正在研究使用google play在应用程序计费中实现自动续费订阅的方法。我读过
https://developer.android.com/google/play/billing/billing_subscriptions.html并查看
按订阅指定的时间间隔和价格继续无限期计费。每次续订时,Google Play会自动向用户账户收费,然后通过电子邮件通知用户收费情况。对于月度和年度订阅,计费周期将始终根据购买日期匹配订阅周期。(季节性订阅每年在季节的第一天收费。)
当订阅付款获得批准后,Google Play将通过应用内计费API向购买应用返回购买令牌。你的应用程序可以将令牌存储在本地或将其传递给后端服务器,然后后端服务器可以使用它通过Google Play Developer API远程验证或取消订阅。
那么有什么方法可以让我的服务器知道用户的订阅是什么时候续订的呢?不是google play,而是在android应用程序之后向android应用程序发送新账单订阅,将此新账单发送到我的服务器以进行验证。
google play是否可以在用户续订时向我的服务器发送通知,例如通过电子邮件通知用户?我想要google play向我发送一个通知,用户的订阅已自动续订,以便我的后端将更新到期,他们的订阅在应用程序增加。不需要android应用程序,每次用户打开商店检查是否有新的账单,从goole播放收费自动化或不检查账单。它实现了吗?
我的工作如下
谷歌收取新的周期订阅并通知我的服务器{正文如bundId,账单,产品_id或订阅包名称、到期日期...),还向用户发送有关其订阅自动化续订的邮件。
我的服务器确定用户的更改订阅,并通过google play api在应用程序购买中验证,如果验证有效,则在您的应用程序中更改过期包订阅。
在我的数据库中存储最新账单这有可能吗?更新来自goolge play api文档的推荐
建议:在您的应用程序中包含业务逻辑,以通知您的后端服务器订阅购买、令牌以及可能发生的任何计费错误。您的后端服务器可以使用服务端API来查询和更新您的记录,并在需要时直接与客户跟进。
如何实现来自google api的推荐,任何文档或教程?
发布于 2017-11-15 04:26:57
我现在也有同样的问题。谷歌的概念并不深思熟虑。可以通知您的后端服务器有关财务交易的信息(请参见这里),但我不建议这样做。您的业务事务依赖于许多Google服务和服务器的正常运行时间。如果出现任何问题或停机或其他情况,您将不会得到通知,并且您的后台业务逻辑将不再工作。
你提到的Google推荐也很糟糕。如果有一个自动更新(它会给你的应用程序提供一个新的purchaseToken ),而用户从未打开你的应用程序,会发生什么呢?然后,新的订阅数据将永远不会传输到您的服务器。如果您从未获得新的令牌,那么如何检查用户是否仍然是订阅者,因为这个有限的Google Play开发人员API愚蠢地需要一个purchaseToken作为参数(请参见这里),只要用户在自动续费后没有打开你的应用程序至少一次(提交到你的服务器),你就永远不会得到它。
我想用这种方式来实现这一点:
1.)我通过cron job不断地检查购买记录。购买记录是一个数据库条目,其中包含来自初始订阅的所有数据(orderId、purchaseToken等,以及服务器上的安全验证过程)。在我的后端系统中,每个购买记录都连接到一个用户帐户(一些UserID)。只要autoRenewing
属性不为false,则订阅有效。即使expiryTimeMillis
由于我上面描述的用例:订阅将由Google自动续订,但用户从不打开应用程序,因此不会将传输令牌发送到您的服务器,并且您仍然不会收到订阅更新的通知。
2.)如果用户随时取消订阅,autoRenewing在任何时候都是假的。这意味着订阅实际上将在expiryTimeMillis..。
3.)当用户打开你的app并将新的purchaseToken传输到你的后台时,你会得到一条新的购买记录,该记录再次通过他的用户ID连接到用户账号。该用户现在可能会有2条购买记录。旧的和新的。如果是这样的话,您可以删除旧的购买记录,并且在步骤1中对新的购买记录重复相同的过程。
到目前为止,我还没有实现这个概念,所以我不知道它是否真的像这样工作。也许这可以以一种不同的方式工作,但也许这是朝着正确方向迈出的一步。
https://stackoverflow.com/questions/45812541
复制相似问题