我正在从以前的 iOS 移植一个工作应用程序,但在处理新的应用程序内购买收据时遇到了问题。
我们现在的工作方式是从SKPaymentTransaction
对象并将其发送到服务器进行验证。
从我从其他问题中收集到的信息来看,收据现在似乎保存在一个地方,即:
[[NSBundle mainBundle] appStoreReceiptURL];
这里有几件事我不明白:
- 现在所有购买的产品都有一张收据吗?
- 如果是这样,这个文件会越来越大吗?
- 如果我想将单一产品的单一收据发送到服务器,我该怎么做?
- 是始终将完整文件发送到服务器的唯一方法吗?
对此感到非常困惑,任何帮助将不胜感激。
根据我通过苹果文档收集到的信息。
1) 所有购买的产品都有一张收据。为了执行服务器端验证,您将整个收据发送到您的服务器,服务器将其转发给 Apple 进行验证。请参阅 Apple 开发者论坛上的这篇文章(从评论 13 开始)https://devforums.apple.com/thread/193893?tstart=0 https://devforums.apple.com/thread/193893?tstart=0
2) 非消耗品将永远保留在收据中,所以它会不断增长。一旦通过调用 finishTransaction 完成,消耗品就会从收据中延迟删除。看https://devforums.apple.com/message/876265#876265 https://devforums.apple.com/message/876265#876265
3) iOS6 循环更新交易并将单独的收据发送到服务器进行验证的方式似乎与新的 iOS7 设计不一致。 Apple 开发者论坛上的这篇文章建议您“将整个交易列表连同收据一起发送到您的服务器。验证收货后,交付所有产品,并完成所有交易。" https://devforums.apple.com/message/897870#897870 https://devforums.apple.com/message/897870#897870
4) 看来确实如此。
如果您认为缺少 iOS7 文档,您可以向 Apple 提交错误报告
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)