想法是用户是否必须得到他付出的全部费用。无论是下雨还是下雨,潮湿或精细。
来自Apple:
Store Kit provides built-in functionality to restore transactions for non-consumable products, auto-renewable subscriptions and free subscriptions
对于这些交易,Apple Store Kit具有良好的内置工具。我想专注于其他类型(特别是消耗品)。 唯一的交易信息是我们在成功购买后通过Store Kit接收的标识符和收据数据。 我们的应用程序使用服务器端模型向其提供产品。但是仍然存在许多丢失购买数据的情况,例如当用户通过App Store进行购买时服务器放下,因此无法向服务器发送收据以完成验证过程。
目前的解决方法是:
但这种做法仍有漏洞。例如,用户可以从不等待交易到服务器的设备中删除应用程序,因此根本不会有任何关于他的购买的证据。
您的建议?
答案 0 :(得分:3)
基本规则是,在成功传递内容之前,不要在支付队列上调用finishTransaction :.这意味着您向验证和内容服务器发出请求,并返回有效的响应。只有在那些正确的响应之后才调用finishTransaction:。请注意,不良购买收据有效且不好。你会让人们试图扯掉货物 - 不要因此而失眠,而是要进行适当的收据检查。
据我了解(来自我的非消耗品),只要您不调用finishTransaction,商店将继续在您的应用安装上重试它。出于这个原因,我认为您不需要您的应用程序将收据保存在设备上。但是,对于耗材,如果您希望以后能够还原数据,则服务器必须存储数据。一个非平凡的问题是存储它的关键。
顺便说一下,你的第一行是绝对正确的,值得失眠。