注意:这是针对 Mac OS X 而不是 iOS
我有一个客户端应用程序,它允许在应用程序内购买消耗品。收据应发送到服务器,服务器在收到订单时执行一些操作。服务器执行的操作花费了我一些钱,所以我需要格外小心收据是有效的并且只使用一次。我正在寻找设计这个的最佳方法。
当用户完成购买时,我似乎从 storekit 中获得了收据。当我将它发送到我的 Web 服务器(运行 WCF)时,它将通过将 JSON 发布到 Apple 来验证收据。当 Apple 确认收据时,它会做一些花费我一些钱的操作。在验证收据部分,我的研究告诉我,消耗品收据总是有效的,实际上并没有被“消费”。我是否应该只跟踪提交给我的服务器的每一张收据并确保它没有被使用?我会尽我所能来支持该列表,但我担心它会在某个时候丢失,并希望有另一种方式。
我的另一个担忧是,由于无法通过 storekit 恢复消耗品收据,因此如果发生诸如用户在购买完成时断电的情况,那么用户将无法获得产品,因为无法检索该收据。这只是我们必须承担的风险还是我忽略了什么?听起来消耗品和非消耗品购买之间唯一真正的区别是您无法恢复消耗品。