5

iOS IAP 文档指出,如果您想测试商店,您应该在设置应用程序中从您的 iTunes 帐户注销。在进行应用内购买时,系统会要求您输入用户名和密码。但是,在应用程序内部,我不知道用户是否已登录,或者他是否使用沙盒帐户。

事实上,我并不关心它是否是沙盒交易,但是:在服务器上,我必须通过 URL https://buy.itunes.apple.com/verifyReceipt 验证真实收据,并通过 URL https验证沙盒收据://sandbox.itunes.apple.com/verifyReceipt。我如何在服务器上知道收据是沙盒收据还是真实收据?

或者应用程序如何知道收据是真实的还是沙盒,因为我将附加参数从应用程序传递到我的服务器没有问题。

什么不起作用:你不能只说应用程序的 DEBUG 版本使用沙盒环境,而 ADHOC 或 RELEASE 版本的应用程序使用生产环境。使用 ADHOC 版本,完全可以使用 iTunes 测试帐户进行应用内购买。

4

1 回答 1

11

当您验证收据时,如果您收到状态代码 21007,则表示它是沙盒收据。看这里:https ://developer.apple.com/library/content/technotes/tn2413/_index.html#//apple_ref/doc/uid/DTS40016228-CH1-RECEIPTURL

我应该使用什么网址来验证我的收据?
始终首先使用生产 URL 验证您的收据;如果您收到 21007 状态代码,请继续使用沙盒 URL 进行验证。遵循这种方法可确保您在沙盒中测试或审查您的应用程序或在 App Store 中运行时不必在 URL 之间切换。

21007状态码表示此回执是沙箱回执,但已发送到生产服务进行验证。状态 0 表示收据已正确验证。有关更多信息,请参阅WWDC 2012:使用应用内购买管理订阅

于 2013-04-24T09:15:39.910 回答