如何根据特定设备检查iOS应用商店收据?

如何根据特定设备检查iOS应用商店收据?,ios,iphone,app-store,in-app-purchase,Ios,Iphone,App Store,In App Purchase,根据WWDC 2013 308研讨会关于在本地验证应用程序购买收据的内容,应验证: 它是由苹果公司签署的,所以它没有被修改 它适用于当前运行的应用程序的相同捆绑包标识符(应用程序)和版本 它与当前设备关联(即,一个用户不会提取采购收据并与其他人共享) 如何检查第三项?根据幻灯片,应该检查设备标识符散列,它在iOS上是供应商标识符。我知道如何通过调用[[UIDevice currentDevice]identifierForVendor]获取供应商标识符。但是,如何将其与收据中的相应数据进行比较?

根据WWDC 2013 308研讨会关于在本地验证应用程序购买收据的内容,应验证:

  • 它是由苹果公司签署的,所以它没有被修改
  • 它适用于当前运行的应用程序的相同捆绑包标识符(应用程序)和版本
  • 它与当前设备关联(即,一个用户不会提取采购收据并与其他人共享)

  • 如何检查第三项?根据幻灯片,应该检查设备标识符散列,它在iOS上是供应商标识符。我知道如何通过调用
    [[UIDevice currentDevice]identifierForVendor]
    获取供应商标识符。但是,如何将其与收据中的相应数据进行比较?在中,他们不会在收据中列出任何与设备ID一致的字段。

    如果您仔细查看该Apple文档,您会发现一章实施技巧。那里的代码表明,您需要连接多个数据段,生成一个SHA1散列,并将其与收据中包含的数据进行比较

    如果要实现服务器端验证,可以使用