了解iOS中的收据验证和收据刷新

the*_*tic 17 ios receipt-validation

我们完全了解iOS中的收据验证流程.

以下是我们目前的工作(开发中):

applicationDidFinishLaunchingapplicationWillEnterForeground我们确认在服务器端的收据,如果没有收据或收据是无效的,我们尝试刷新收据和重新验证.

以下是一些问题/问题:

  1. 什么情况下设备上没有可用的收据?

  2. 我们是否应该在没有收据时发出收据刷新请求?

  3. 为什么这个警报框有时会在启动时显示?我明白这是在收据刷新请求上显示的吗?

需要登录?

  1. 收据验证何时发生?我们目前只是在购买时验证购买,这是正确的用法吗?

And*_*rea 12

  1. 在生产中,设备上始终有收据.在第一次安装后的测试中没有.因此,如果您想要进行正确的测试,即使在测试环境中该用户不存在购买,您也必须恢复购买.这是为什么?从appstore下载的应用程序即使是免费的,也会随附收据.
  2. 取决于您要应用的业务逻辑.如果您在每次使用启动应用程序时验证服务器的收据,当然您需要收据.如果它不存在(但在生产中总是)或无效,你可以要求刷新或恢复,但据我记得你应该总是先问用户他/她是否想这样做(可以是拒绝的理由).恢复和刷新不是一回事.
  3. 这通常出现在购买/恢复/刷新中.但是如果该帐户有一些待处理请求,因为应用程序已崩溃或您在请求结束之前以某种方式中断了调试,您将会厌烦很多.没有办法以编程方式刷新它们,只需登录直到它们停止.当然,这不是一个有效的测试.
  4. 这取决于您和购买的类型.如果是可自动更新的订阅,您可以针对服务器验证收据,然后将"结束日期"存储在客户端上,并在日期过期后再次进行检查.注意收据可能很大,因为它也具有所有历史价值.