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 免安装体验 )