序言:苹果终于给出了退单的通知(是复用了订阅回调通知),终于!本文重新补全一下iOS iap处理逻辑。
苹果退单wiki:https://developer.apple.com/documentation/storekit/in-app_purchase/handling_refund_notifications
一、上图主要处理了以下业务:
- 普通购买
- 自动续订订阅
- 补单处理
- 预防黑产
- 退单处理
二、除了上述业务逻辑,需要实现:
- 业务自身的订单逻辑
- log
- 预防黑产规则库
1. 业务自身的订单逻辑
即业务自身的订单,当用户点击某个商品时候产生,而不是在唤起苹果应用内支付时候才创建,好处是可以管理自己的订单系统,与web、android统一。其次,便于采集支付过程中的log,便于处理补单、退单、黑产等。
2.log
重要的事情说一万遍,log很重要,尤其是iOS iap 各个步骤的log,一定要详细,便于查看各种奇葩的问题,查漏补缺。
3.预防黑产规则,时序图中【黑产代充校验】处都需要进行以下校验,若不符合以下要求,拦截支付行为。若拦截失败,那肯定还是被突破限制,可以标记黑产,不发道具。
- 是否越狱,限制越狱设备购买
- 一台设备只能登录xx个账号
- 一个账号最多在xx台设备上进行购买
- 一个账号每天最多进行xx笔小额支付
- 一个账号每月最多进行xx笔小额支付
- 当前购买只支持cny,usd等稳定汇率的货币
- 创建订单设备和发货时的设备需要是同一个
- 更多规则