我应该使用什么网址来验证我在应用内购买中的收据

时间:2013-01-25 07:03:18

标签: objective-c in-app-purchase receipt

我在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来验证收据。

1 个答案:

答案 0 :(得分:6)

最好的方法是首先使用生产服务器进行验证。如果你得到21007代码,你应该再次调用沙盒服务器。这是必需的,因为在提交过程中,您并不总是确定他们是否会使用实时或沙盒服务器。它需要同时工作。

这里有一些源代码可以安全地验证收据(从去年开始反击app store hack)。我将上述代码添加到此项目中,该项目将首先检查生产服务器,然后返回到沙盒服务器:

https://github.com/evands/iap_validation

编辑:我不会再在iOS 7中使用上面的代码了。我认为它有一些问题!