【问题标题】:How to verify a iTunes Store receipt for in-app purchase如何验证应用内购买的 iTunes Store 收据
【发布时间】:2012-05-04 22:44:28
【问题描述】:

首先,我不是在谈论打电话给https://buy.itunes.apple.com/verifyReceipt/,而是我要问的是如何验证来自我们的一位用户的 iTuneStore 收据。

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

所以我想知道我们是否可以验证这样的收据。 iTunes Store 收据中有“receipt no”和“order number”,但是通过游戏内收据验证我们得到transaction_id,这些数字是完全不同的。有什么想法吗?

提前致谢。

【问题讨论】:

  • 您找到解决此问题的方法了吗?我很好奇这是否可能。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 在我的例子中,我在自己的设备上进行测试,所以我可以访问 API、Apple 通过电子邮件发送的实际收据以及开发人员应用内购买内容,例如交易标识符、完整的编码收据等。问题是客户收据(Apple 通过电子邮件发送给购买者的收据)上似乎没有任何内容将 1 对 1 绑定到应用内购买交易。
    • 是的,这可能是正确的。我所说的“收据”是您在代码中使用的二进制文件,我相信它与您所说的“完整编码收据”是一样的。使用它您也许可以修复它,但是要求您的客户退款并再次购买可能是最好的解决方法。
    【解决方案3】:

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

    您必须编写一个特殊用途的 iOS 应用程序,该应用程序使用该代码并将收据提供给它。看起来工作量很大。

    【讨论】:

    • 我使用了这个来源,但它已被弃用。现在我们需要另一个解决方案。看起来该来源是针对 iOS 5.1 中 IAP 漏洞的 Apple 修补程序。现在一切都已修复,不再需要那个来源。
    【解决方案4】:

    我不是说要打电话给https://buy.itunes.apple.com/verifyReceipt/

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      相关资源
      最近更新 更多