验证服务器端Mac OS X的耗材应用程序内购买

Jon*_*onF 6 macos in-app-purchase mac-app-store

注意:这适用于Mac OS X而非iOS

我有一个客户端应用程序,将允许消费的应用程序内购买.应将收据发送到服务器,服务器在获取订单时执行某些操作.服务器执行的操作花了我一些钱,所以我需要格外小心,收据是有效的,只使用一次.我正在寻找最好的设计方法.

看起来我在用户完成购买时从storekit获得收据.当我将其发送到我的Web服务器(运行WCF)时,它将通过将JSON发布到Apple来验证收据.当Apple确认收据时,它会进行操作,这会花费我一些钱.在验证收据部分,我的研究告诉我,消耗品收据总是有效,实际上并没有"消费".我是否应该只跟踪提交给我的服务器的每一张收据,并确保它没有被使用?我会尽一切努力来支持这个清单,但我担心它会在某些时候迷失,并希望以另一种方式.

我的另一个问题是,由于消费品收据无法通过商店包恢复,如果发生某些事情,例如用户在购买完成后失去权力,那么用户将无法获得产品,因为无法检索该收据.这只是我们必须承担的风险还是我忽略了什么?听起来,消耗品和非消耗品之间唯一真正的区别在于您无法恢复消耗品.

Jon*_*onF 1

我与苹果代表讨论了这个问题。他们基本上说,在当前版本的框架中,无法验证服务器上的消耗品收据。