iOS 订阅验证
Posted
技术标签:
【中文标题】iOS 订阅验证【英文标题】:iOS Subscription Verification 【发布时间】:2012-12-04 05:09:04 【问题描述】:我有一个有趣的问题......(至少对我来说)
我开发了一个使用自动续订订阅的应用。他们按照我的方式设置,应用程序保存订阅收据,然后每次需要验证订阅时,应用程序将收据信息发送到我的服务器,验证收据仍然有效。
在我的应用程序中,我有一个名为“testMode”的应用程序范围的常量。除其他外,这会导致应用程序使用沙盒或生产标志查询我的服务器。因此,如果我在测试模式下测试应用程序,该应用程序将查询我的服务器上的一个文件,该文件检查沙盒 Apple 服务器。如果应用程序未处于测试模式(例如当我将其提交给 Apple 时),它会查询我的服务器上的生产文件,该文件会根据 Apple 的生产服务器检查数据。
我的应用被拒绝,因为它在订阅时产生了错误。该错误是 21007,这意味着沙盒收据已发送到生产验证服务器。
所以我的问题是:如果 Apple 测试人员使用沙盒环境,我如何提交用户生产服务器验证的应用程序?
【问题讨论】:
您能否在提交应用时在评论备注中向 Apple 提供一个“虚拟”帐户信息? 应用不使用帐号 【参考方案1】:我遇到了类似的问题。这是最好的处理方式:
每当您的服务器收到来自应用的新收据时,请先与生产服务器进行验证。然后,如果您收到错误 21007,请尝试使用沙盒服务器使用相同的收据。这就是我所做的,并且效果很好。 Apple 应该推荐这个,但他们不推荐。
使用此方法,您应该能够摆脱应用中的 testMode(除非您将其用于其他目的)。
【讨论】:
以上是关于iOS 订阅验证的主要内容,如果未能解决你的问题,请参考以下文章
使用服务器到服务器通知和 Firebase Cloud Functions 对 iOS 和 Android 自动更新订阅进行服务器端验证