【发布时间】:2016-02-07 01:16:46
【问题描述】:
我们运行一个 SAAS Web 应用程序,并将在 Apple 的应用商店中推出我们的应用程序(到目前为止,我们已经有了一个移动 Web 应用程序)。
由于我们的客户易于使用,我们希望提供在应用中购买订阅的功能。没问题,我们知道该怎么做。
我们的问题是,是否有一种简单的方法可以让我们的网络应用程序的数据库根据用户当前的订阅状态进行更新,这样如果他们访问我们的网络应用程序,我们就知道他们的订阅是否有效。
理想情况下,如果 Apple 提供一个网络挂钩选项,他们会在我们的服务器上发布对 URL 的更新,那就太好了。根据我的阅读,这不是一个选择。
当用户登录时,我们始终可以从 iPhone 应用程序将数据发布到我们的服务器,但如果用户有一段时间没有登录 iPhone,我们服务器上记录的订阅状态将过期。
其他人是如何处理这个问题的?我们错过了什么吗?
更新:
我找到的最接近的是这个帖子:https://forums.developer.apple.com/message/70707#70707
应用在首次购买订阅时会收到收据,或者 恢复订阅。该应用程序可以将原始收据发送到 任何人的服务器。然后任何人的服务器都可以使用该原始收据 随时验证当前订阅。你不能那样做 具有非续订订阅但具有非续订订阅 用户每次都必须从 iOS 设备购买扩展 期间。
对此进行了跟进: https://hetzel.net/2011-04-01/server-side-auto-renewable-subscription-receipt-verification/
从 Apple 看来,他们绝对没有为同步做出任何规定:
跨平台注意事项
产品标识符与单个应用相关联。有的应用 iOS 和 OS X 版本都有单独的产品 每个平台上的产品标识符。您可以让拥有 iOS 应用程序中的订阅从 OS X 应用程序访问内容(或 反之亦然),但实现该功能是您的 责任。您需要一些系统来识别用户和 跟踪他们订阅的内容,类似于 您将为使用不可更新订阅的应用程序实现。
【问题讨论】:
-
只是想问你最后是如何进行服务器端验证的。我猜您将原始收据存储在服务器上,然后定期与 Apple 检查它是否仍然有效?你多久这样做一次?我想过一周后(检测用户是否取消订阅),然后当前订阅阶段即将到期?
-
嗨,@Georg 很遗憾没有找到好的解决方案,我向 Apple 寻求帮助的请求没有得到答复。
标签: ios in-app-purchase storekit