如何验证iTunes Store收据以进行应用内购买

时间:2012-04-24 09:48:46

标签: ios in-app-purchase itunes-store

首先,我不是在谈论调用https://buy.itunes.apple.com/verifyReceipt/,相反,我要问的是如何验证来自我们某个用户的iTuneStore收据。

我们在应用程序中进行了应用内购买,并且在授予产品之前,我们会在服务器上验证游戏内收据。然而,这个特定的用户声称他被iTunes商店收费,但没有得到所购买的产品,并将收据作为证明发送给我们。

所以我想知道无论如何我们都可以验证这样的收据。 iTunes Store收据中有“收据号”和“订单号”,但是,通过游戏内收据验证,我们获得了transaction_id,这些数字完全不同。有什么想法吗?

提前致谢。

4 个答案:

答案 0 :(得分:0)

您应该联系Apple的开发人员支持。如果您无法在自己的系统中找到相应的交易,我怀疑是否有办法自行验证。

答案 1 :(得分:0)

没有手动方式来执行此操作,除非您能以某种方式从他的设备获取收据数据,在这种情况下,您可以使用您提到的Apple API来验证他的声明。如果他说的是真的那么建议他要求退款然后重新购买。他应该能够做到这一点here

答案 2 :(得分:-1)

https://github.com/roddi/ValidateStoreReceipt/blob/master/validatereceipt.m有源代码验证收据,让您解析它并转储所有交易。 如果有IAP交易,你会看到它。

您必须编写一个特殊用途的iOS应用程序,该应用程序使用该代码并将其提供给收据。这似乎很多工作。

答案 3 :(得分:-4)

  

我不是在谈论调用https://buy.itunes.apple.com/verifyReceipt/

实际上你有在线收据验证工具,可以通过上面的链接访问。 没有更好的方法来验证您的收据。离线验证是可能的,但即使成功,也没有人可以100%保证您的收据有效(可能只是相同的签名,但仍然是假的)。

Apple处理其服务器上的每次购买,如果成功,则将收据保存到数据库。如果您想查看收据,您必须访问该数据库并请求收据。所以你有一个工具,但不想使用它?那时候没有可靠的方法。