苹果内购漏单处理思路

支付流程解释

1.客户端向Appstore请求购买产品,Appstore验证产品成功后,从客户端的Apple账户中扣费。

2.Appstore向客户端返回一段receipt-data(票据),里面记录了本次交易的证书和签名信息。

3.客户端向我们可以信任的服务器(后台)提供receipt-data

4.服务器对receipt-data进行一次base64编码

5.把编码后的receipt-data发往itunes.appstore进行验证

6.itunes.appstore返回验证结果给服务器

7.服务器对商品购买状态以及商品类型,向客户端发放相应的道具与推送数据更新通知

问题:

以上七个步骤实际上是一个很安全的支付流程了。那问题会出在哪里呢?

问题出现在内购票据返回有延迟,中间用户可能杀进程或者进入后台操作。

一:得到票据,立即保存本地,并向服务器验证

二:验证成功,删除本地保存数据。若未成功,再次验证重试。

三:APP重启时,如有本地票据则与服务器进行认证,若认证成功则删除票据。

四:若以上流程还未能解决漏单问题,则可在APP增加类似找回按钮,依据本地保存票据进行找回(流程三)。

注:服务器需建立表单记录票据数据,避免多次增加内购产品。


参考:https://www.jianshu.com/p/041cc4be7f26

猜你喜欢

转载自blog.csdn.net/Momo_Da/article/details/104960631