iOS7中不可消耗产品的服务器端收据验证和transactionReceipt弃用

gil*_*lyD 15 validation in-app-purchase receipt ios7

我正在从以前的iOS移植一个正在运行的应用程序,并且我在使用新的应用内购买收据时遇到了问题.

我们现在的工作方式是从SKPaymentTransaction对象获取transactionReceipt属性并将其发送到服务器进行验证.

从我从其他问题中收集的内容来看,收据现在似乎在一个地方举行,其中包括:

[[NSBundle mainBundle] appStoreReceiptURL];
Run Code Online (Sandbox Code Playgroud)

这里有一些我不明白的事情:

  1. 现在所有购买的产品都有一张收据吗?
  2. 如果是这样,该文件是否会增长并增长和增长?
  3. 如果我想将单个产品的单个收据发送到服务器,我该怎么办?
  4. 是始终将完整文件发送到服务器的唯一方法吗?

非常困惑,任何帮助将不胜感激.

Byr*_*ron 18

从我通过Apple的文档收集到的内容.

1)所有购买的产品都有一张收据.为了执行服务器端验证,您将整个收据发送到您的服务器,然后将其转发给Apple进行验证.在Apple开发者论坛上看到这篇文章(从评论13开始)https://devforums.apple.com/thread/193893?tstart=0

2)非消耗品将永久保留在收据中,所以是的,它会增长和增长.通过调用finishTransaction完成后,耗材将从收据中懒散地移除.请参阅https://devforums.apple.com/message/876265#876265

3)iOS6通过updatedTransactions循环并将单个收据发送到服务器进行验证的方式似乎与新的iOS7设计不一致.Apple开发者论坛上的这篇文章建议您" 使用收据将整个交易列表发送到您的服务器.验证收据后,交付所有产品,并完成所有交易. " https://devforums.apple的.com /消息/ 897870#897870

4)看起来确实如此.

如果您认为缺少iOS7文档,则可以向Apple提交错误报告