【问题标题】:How to check if a user has a subscription (Android in-app billing)?如何检查用户是否有订阅(Android 应用内计费)?
【发布时间】:2012-09-03 16:34:56
【问题描述】:

我一直在尝试使用 Google Play Android Developer API,但我意识到这可能不是我应该做的:

您的服务器不应该基于动态查询订阅状态 来自您的 Android 应用程序的个别请求。 -Google

我没有自己的服务器,预计应用程序的每日使用量不会超过 15000 次(API 允许每天 15000 个请求),并且只是计划在每次应用程序启动时检查订阅状态。

这似乎是 Google 所说的我应该不做的事情。那么,我该如何检查用户的订阅状态呢?

【问题讨论】:

    标签: android google-api in-app-billing google-play subscription


    【解决方案1】:

    我相信答案是上面same document 中的几段:

    • 在您的服务器上存储订阅到期

    • 缓存过期和购买状态

    • 仅在到期时查询订阅状态

    一般来说,他们的意思是你应该缓存订阅状态,不要每次都查询。

    【讨论】:

    • 我认为它仍然适用。在您的应用程序开始时,您可以执行 HTTP 请求以获取订阅状态。但是,如果成千上万的用户每天启动它数百次 - 你就会遇到麻烦(超过 15000 的限制)。因此,您可以在应用启动时执行一次此请求,并在设备上缓存到期和状态,然后再次请求,仅在到期时。
    • 没有服务器困扰我的一件事是安全性。您将需要进行身份验证和授权才能进行这些调用。这意味着您将不得不硬编码访问令牌或类似的东西,这不是一个好主意(任何人都可以对您的应用程序进行逆向工程)。
    • @KimiChiu 我相信过去 4 年(从提出这个问题的那一刻起)他们将 API 限制提高到 20 万个请求。如果您确实需要执行比这更多的请求,您可以随时联系 Google,我很确定这可以将您的应用的这个限制提高到更高。
    • @VictorRonin 谢谢!我在这里找到它:developer.android.com/google/play/developer-api.html#quota
    • 嗨,我遇到了一个典型的问题。当用户购买订阅时,api 未能检索到该交易的任何信息,这些信息应该存储在我们的服务器上。现在该用户无法访问应用程序的付费功能,因为我们的服务器上没有关于购买的此类信息,而且该用户无法重新购买该订阅,因为他已经订阅,谷歌抛出错误已经订阅。有没有办法解决这个特定的问题?
    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 2019-11-26
    • 2013-03-11
    • 2012-08-27
    • 2016-08-04
    • 2023-03-05
    • 2011-07-04
    • 1970-01-01
    相关资源
    最近更新 更多