iOS InApp购买收据验证iOS 7

时间:2013-10-26 23:37:04

标签: ios security in-app-purchase

我现在已经阅读了几次Apple的文档,但我并没有真正理解它。所以我希望有人知道如何处理收据验证:

我知道iOS 6之前存在问题。但现在iOS 7上是否需要Receipt Validation?它真的增加了额外的安全性吗?如果Apple改变收据的格式(在设备上解析它们),它似乎会导致问题。

2 个答案:

答案 0 :(得分:3)

在我看到的情况下,iOS7不会改变您是否进行收据验证的需要,只需 收据验证是否可行。 iOS7已在设备上启用收据验证(例如,请参阅上面https://stackoverflow.com/users/1226963/rmaddy的链接,并参阅A complete solution to LOCALLY validate an in-app receipts and bundle receipts on iOS 7)。

设备上的收据验证是否会增加额外的安全性?在我看来它确实如此。它为您提供了一个可以确保购买的工具。在我的应用程序(尚未发布)中,我想支持iOS6和iOS7,所以我决定让后端服务器对iOS6案例进行收据验证。由于我已经安装了该服务器,对于iOS7收据,我首先进行设备验证,如果成功,我会进行服务器验证作为第二次检查。

您是否进行收据验证(在iOS5,iOS6,iOS7等中)确实取决于您的安全对您的意义。如果您没有太多的安全需求,那么为什么要花很多时间在安全性上。如果你这样做,那就做更多。

如果Apple更改收据的格式怎么办?嗯,当然,这可能也可能会发生。鉴于iOS6到iOS7大大改变了重组收据和应用内购买,似乎我们应该期待iOS8再次这样做。那就是未来。处理我们现在拥有的东西。

答案 1 :(得分:0)

收据验证不是必需的,但在以下情况下是必需的:

  • 如果是自动续订的,那么在刚购买时–要获得到期日期。
  • 还原应用内购买时。如果用户已经重新安装了该应用程序或从新设备启动了该应用程序,则您必须提供一种机制来恢复其购买的商品并提供对其已付费功能的访问权限。
  • 几年前,当通常使用越狱时,开发人员用来验证收据以确认付款未被黑客入侵–我认为现在已经过去了,不再需要了。

以下是我们博客中有关App Store收据验证的完整常见问题解答:

https://blog.apphud.com/receipt-validation/