Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS InApp采购收据验证iOS 7_Ios_Security_In App Purchase - Fatal编程技术网

iOS InApp采购收据验证iOS 7

iOS InApp采购收据验证iOS 7,ios,security,in-app-purchase,Ios,Security,In App Purchase,我已经读过几次苹果的文档了,但我并没有从中变得更聪明。所以我希望这里有人知道如何处理收据验证: 我知道在iOS 6之前有个问题。但如今iOS 7是否需要收据验证?它真的增加了额外的安全性吗?如果苹果改变收据的格式(在设备上解析收据),似乎会导致问题。在我看来,iOS7并没有改变你是否应该进行收据验证的需要,只是改变了收据验证的可能性。iOS7已在设备上启用了收据验证(例如,请参阅上面的链接,并参阅) 设备接收验证是否增加了额外的安全性?在我看来是的。它为您提供了另一个确保购买安全的工具。在我的应

我已经读过几次苹果的文档了,但我并没有从中变得更聪明。所以我希望这里有人知道如何处理收据验证:


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

在我看来,iOS7并没有改变你是否应该进行收据验证的需要,只是改变了收据验证的可能性。iOS7已在设备上启用了收据验证(例如,请参阅上面的链接,并参阅)

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

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


如果苹果改变收据的格式怎么办?当然,这是可能发生的。考虑到iOS6到iOS7对重组后的收入和应用程序内购买的改变相当大,我们似乎应该期待iOS8再次这样做。这就是未来。处理我们现在拥有的。

不需要收据验证,但在这些情况下需要:

  • 如果是刚购买的自动续费订阅–获取到期日期
  • 恢复应用内购买时。如果用户已重新安装应用程序或从新设备启动应用程序,则必须提供一种机制来恢复其购买,并允许用户访问其已付费的功能
  • 几年前,当越狱被普遍使用时,开发人员用来验证收据以验证付款是否被黑客入侵——我相信那些日子已经过去了,不再那么必要了
以下是我们博客中有关App Store收据验证的完整常见问题解答:


看到了吗?我想你是想说,既然你自己开发了一个框架,那么仍然有必要这么做?@rmaddy-考虑到所有的变化(InApp和捆绑验证),理解如何使用github verifyStoreReceiptiOS似乎是不可能的。您没有解释如何使用Apple根证书以及涉及的步骤。对不起,你的文件太模糊了-/@这些文件含糊不清是有原因的。如果它有明确的文档记录,每个人都会完全一样地实现它,黑客很容易使它无用。通过让每个人都了解自己的最终细节,这让每个人都更安全。我发布的类解决了90%的工作量。@rmaddy。对不起,我知道如果每个人都使用相同的方法,crackers会很高兴,但是你可以举一个方法为例,并说:这些是验证捆绑包必须遵循的步骤。以下是验证iapp必须遵循的步骤。这就是这个和这个方法所做的。现在去创建你自己的方法。没有任何解释。你必须弄清楚该做什么和怎么做。我确信,对于每个实施验证的人来说,要做的事情都是一样的。他们唯一需要更改的是如何更改。对于iOS 7,如何检查服务器端特定IAP是否有效?是否有一些php基本代码可供查看?我正在努力解决这个问题…:/我担心的是,用户可能会购买一些东西,但收据验证失败(无论出于何种原因)。那么在这种情况下,用户什么也得不到,只是被收取了费用,对吗?怎么预防呢?我也很想知道。对于iOS7,在执行设备上的收据验证且验证失败后,苹果建议您刷新收据(SKReceiptRefreshRequest),然后再次尝试验证。现在,如果刷新后验证失败,该怎么办?在我的代码中(尚未在应用商店中),我要求用户联系客户支持(即我)。至于服务器端验证失败(例如iOS6),那么,在这种情况下,我们似乎无能为力。。。不过我愿意接受建议!