iOS订阅验证

时间:2012-12-04 05:09:04

标签: ios storekit

我有一个有趣的问题......(至少对我而言)

我开发了一款使用自动续订订阅的应用。他们设置的方式,应用程序保存订阅收据,然后每次需要验证订阅时,应用程序将收据信息发送到我的服务器,验证收据是否仍然有效。

在我的应用程序中,我有一个名为“testMode”的应用程序范围的常量。除此之外,这会导致应用程序使用Sandbox或Production标志查询我的服务器。因此,如果我在测试模式下测试应用程序,应用程序将查询我的服务器上检查沙箱Apple服务器的文件。如果应用程序未处于测试模式(例如,当我将其提交给Apple时),它会查询我服务器上的生产文件,该文件会检查Apple的生产服务器上的数据。

我的应用被拒绝了,因为它在订阅时产生了错误。该错误是21007,这意味着沙箱收据已发送到生产验证服务器。

所以我的问题是:如果Apple测试人员使用沙箱环境,我如何提交用户进行生产服务器验证的应用程序?

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题。这是处理它的最佳方式:

每当您的服务器从应用程序收到新收据时,首先使用生产服务器进行验证。然后,如果您收到错误21007,请尝试使用沙箱服务器的相同收据。这就是我所做的,它运作良好。 Apple应该推荐这个,但他们没有。

使用此方法,您应该能够在应用程序中删除testMode(除非您将其用于其他目的)。