我们有充分了解iOS中收据验证流程的问题.
这是我们目前所做的(在开发中):
在applicationDidFinishLaunching和applicationWillEnterForeground中,我们验证服务器端的收据,如果没有收据或收据无效,我们尝试刷新收据并重新验证.
这里有一些问题/问题:
>设备上没有收据可用的情况是什么?
>当没有收据时,是否应该总是发出收据刷新请求?
>为什么启动时有时显示此警报框?我明白这是在收据刷新请求中显示的?
>收据验证何时发生?我们现在每当购买一个验证购买的时候都这样做,这是正确的用法吗?
解决方法
>在生产中,设备上始终可以使用收据.在测试之后 第一次安装没有.所以如果你想做一个正确的测试,您必须恢复购买,即使该测试中该用户不存在购买 环境.这是为什么?从应用程序下载的应用程序总是带有收据,即使它们是免费的. >取决于您要应用的业务逻辑.如果您每次使用启动应用程序验证服务器的收据,当然您需要收据.如果它不存在(但在生产中总是)或无效,您可以要求刷新或恢复,但据我所知,您应该始终询问用户他/她是否想要这样做(可以是拒绝的理由). 恢复和刷新不一样. >这通常出现在购买/恢复/刷新.但是,如果该帐户有一些待处理的请求,因为该应用程序已经崩溃,或者在请求结束之前中断了调试,您将会感到无聊.没有办法以编程方式冲洗它们,只需登录直到停止.当然这不是一个有效的测试. >这取决于您的购买方式.如果是可自动更新的订阅,您可以根据服务器验证收据,然后将“结束日期”存储在客户端上,并在日期到期后再进行检查.注意收据可能相当大,因为也有历史价值观.