【发布时间】:2018-11-30 15:58:01
【问题描述】:
我想为我正在开发的 iOS 应用实施应用内购买消耗品产品。我想在服务器端验证收据,如documentation 所示:
- 向 Apple Store 请求应用启动事务
- Apple Store 应用程序回执收据
- 应用将收据发送到受信任的服务器
- 受信任的服务器通过 HTTP POST 向 Apple Store 发送收据(base 64 格式)
- Apple Store 通过验证回复 HTTP POST
- 如果验证响应正常,则可以启用购买
我担心以下情况:用户购买产品,Apple Store 将收据发送回应用程序(步骤 1,2)。然后,当应用程序尝试将收据发送到受信任的服务器(第 3 步)时,连接就会断开。在这种情况下,必须立即重试收据验证,但是,我有以下问题:
a) 在这种情况下,用户是否已经为产品付款?
b) 既然consumable产品的收据compare only at the time of the purchase,应该如何管理验证重试?我应该在本地保存收据以便将来重新发送吗?
我可以不将交易标记为“已完成”吗?根据我阅读文档的理解,在这种情况下,StoreKit 应该再次调用事务队列观察者(再次传递收据?)直到事务被标记为“完成”,对吗?
提前谢谢你
【问题讨论】:
标签: ios in-app-purchase receipt-validation