Android/Google Play:我真的需要我的 OWN 服务器来管理应用内计费订阅吗?

Posted

技术标签:

【中文标题】Android/Google Play:我真的需要我的 OWN 服务器来管理应用内计费订阅吗?【英文标题】:Android/Google Play: do I really need my OWN server to manage inapp billing subscriptions? 【发布时间】:2015-08-16 15:19:06 【问题描述】:

Google Play doc 中写道“为了验证购买,应用将购买令牌和其他详细信息传递到您的后端服务器,后端服务器使用 Google Play Developer API 直接通过 Google Play 验证它们。”

我的问题是:我真的需要自己的服务器来在我的 android 应用中实现 InApp 订阅吗?

有没有办法在没有我自己的服务器的情况下实现订阅? (仅直接从我的应用中使用 Google Play Inapp Billing API)

谢谢!

【问题讨论】:

简短回答:是的,您需要一个后端服务器。 对不起,看来你错了。请参阅我对自己问题的回答。 我不会说我错了,因为安全是一件大事......这显然不适用于你 ***.com/questions/16067180/… 【参考方案1】:

回答我自己的问题:不需要拥有自己的服务器来实现应用内订阅。自己的服务器只允许添加一定级别的安全性,但在我的特定情况下我并不真正关心安全性(如果 1% 的人绕过 inapp 进程也没问题)。

自己的服务器允许使用“boolean verifyDeveloperPayload(Purchase p)”方法执行一些额外级别的检查。在所有情况下都只需返回“true”,因为它在 Google 示例中默认设置。

要实现订阅,只需调用:

mHelper.launchSubscriptionPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener);

而不是:

mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener, payload); 

在开发控制台中创建订阅项。

就是这样!

2020 年 9 月编辑: 我不知道 API 的 V3 是否仍然如此……确实,文档提到应用程序必须管理帐户“保持状态”,但我不知道服务器和使用 RTDN/PubSub 是否是现在需要。

2020 年 10 月编辑:

确认即使使用 API V3 也不需要服务器。见here

【讨论】:

感谢您跟进 v3 API。我对这种方法有疑问,我们可以不使用后端来恢复购买吗?当用户在另一台设备上安装相同的应用时说什么? @Lincoln 是的,购买可以在没有后端的情况下恢复。【参考方案2】:

几年后...

Google 仍然强烈建议使用后端服务器进行计费。

但他们承认许多开发人员需要无服务器解决方案,因此他们创建了 issue。

几个月后,他们提供了一个无服务器 Android 应用的示例here。

在同一个 repo here 中也有 Java 粉丝的 Java 版本。

【讨论】:

以上是关于Android/Google Play:我真的需要我的 OWN 服务器来管理应用内计费订阅吗?的主要内容,如果未能解决你的问题,请参考以下文章

android google play 库使用过多的 CPU 使用率

Android Google Play Oauth2 gtalk authToken 的 requestBody 中的正确凭据

Google Play从 Android 应用中跳转到 Google Play 中 ( 跳转代码示例 | Google Play 页面的链接格式 | Google Play 免安装体验 )

Android:Google Play 服务“无资源”错误

实现成就和排行榜的问题 Unity、Android - Google-Play-Games

Android Google Play 游戏服务回合制多人游戏不自动匹配