由于网上有关自动订阅的信息较少,自己姑且整理一下目前接触到的信息,希望能够对一些朋友有所帮助,如有疑问欢迎随时留言交流。
相关内容可参见苹果官方文档:
自动订阅商品在订阅过程及订阅完成后的有效期内,均可理解为非消费品,其支付过程及恢复流程(这里特指苹果自身的恢复流程)均和非消费品相同。
目前主要有如下几个问题需要注意:
1、订阅到期的处理
目前网上并没有对于订阅到期的明确处理方式,目前据说有如下几种做法:
a、订阅到期或者用户手动取消订阅之后,再次进入客户端,会收到苹果发来的回调,就是在之前的购买成功/失败/恢复流程接收回调的observer里,客户端根据该回调进行相关处理。
这其实是最合理的处理方式,但是经过自测,发现客户端并未收到任何消息,至少在测试环境下没有收到任何消息,网上有朋友说是测试环境收不到,但是正式环境可以收到,由于测试难度较大,所以一直没有拿线上产品这么尝试过。
b、客户端自行连服务器判断是否订阅过期,过期之后执行恢复流程。
执行恢复流程确实可以达到目的,可以通过恢复回来的receipt向苹果验证,从而得到用户在苹果当前的订阅信息。但是恢复流程的一个致命缺陷就是需要输入密码,而且用户可以选择不输入,这样的话用户体检就大打折扣了。
c、客户端在订阅成功后将苹果返回的receipt记录本地,每次程序启动后(防止客户端时间被篡改的情况)向苹果验证一次订阅是否有效,然后执行后续逻辑。
这样处理也可以达到目的,但