我在Apple的技术说明(QNo: 15)的FAQ中找到了上述问题。他们给出了这样的答案:
使用沙箱网址https://sandbox.itunes.apple.com/verifyReceipt 同时在沙盒中测试您的应用程序 申请正在审查中。
一旦您的应用程序在App Store中存在,请使用生产URL http://buy.itunes.apple.com/verifyReceipt。
但是在应用程序内购买编程指南(Verifying a Receipt with the App Store Section)中。 Apple提供了这样的网址:
使用HTTP POST请求将JSON对象发布到App Store。该 商店的网址为https://buy.itunes.apple.com/verifyReceipt。
请注意,第一个网址正在使用http作为真实帐户来验证应用内购买,而第二个网址正在使用https。我应该使用哪一个?我的应用程序被拒绝是因为服务器没有得到正确的响应,当它向Apple发送收据时。我正在使用https://buy.itunes.apple.com/verifyReceipt来验证收据。
答案 0 :(得分:6)
最好的方法是首先使用生产服务器进行验证。如果你得到21007代码,你应该再次调用沙盒服务器。这是必需的,因为在提交过程中,您并不总是确定他们是否会使用实时或沙盒服务器。它需要同时工作。
这里有一些源代码可以安全地验证收据(从去年开始反击app store hack)。我将上述代码添加到此项目中,该项目将首先检查生产服务器,然后返回到沙盒服务器:
编辑:我不会再在iOS 7中使用上面的代码了。我认为它有一些问题!