1—IAP优化流程
2021-04-01 19:18:43 0 举报
IAP流程
作者其他创作
大纲/内容
是
埋点数据eventType:6status:2buttonType:repaybuttonValue:重试次数 0 1 2
否
成功
埋点数据eventType:5pageState:2status:1productId:'xxxx'
是否允许购买
verifyRetryCount重试满3次 或failTransactionVerifyRetryCount重试满3次
是人民币,则代表价格错误
订单核实成功
埋点数据eventType:5status:2pagestate:1productId:'xxxx'
是否在刷新票据中
产品类型是否为自动续订订阅
回调
埋点数据eventType:3status:2thirdReturnCode:2thirdReturnMsg:'xxxx'
公用的交易失败回调
是否有票据信息
新增/更新支付交易事务
不存在
输入merId:1705
购买中
本地有未完成订单的处理逻辑
IAP交易失败
kPayQueryOrderFailMessage = 支付结果查询失败,如果您已完成付款,请查询余额是否已入账,未入账请联系客服
失败
处理IAP购买状态
获取本地票据
IAP结果处理流程
核验付款
埋点数据eventType:8status:2buttonType:'ProductPayCNY'
埋点数据eventType:8status:1buttonType:'priceCheck'
埋点数据eventType:6status:1buttonType:getPaybuttonValue:重试次数 0 1 2
存在
埋点数据eventType:5pageState:2status:2productId:'xxxx'
有网络
给出成功提示并清空订单信息
/pay接口是否成功
是否为用户取消
已经购买过
存在产品标识符
订单处理中
因为sdkChannelId默认值设为消耗型235;自动续订订阅更新为对应的值
埋点数据eventType:3status:5thirdReturnCode:2thirdReturnMsg:'xxxx'
取消购买
pendingQueue
获取58账户信息+支付渠道信息+商户信息
是否存在priceCodeIsCNY字段
无网络状态
埋点数据eventType:8status:2buttonType:'deviceCanMakePayments'
完成付款购买状态:失败
buyAgainRequestCount重试次数是否满3次
验证商品信息
handleVerifyState
结束交易事务
继续购买
埋点数据eventType:6status:3buttonType:getPaybuttonValue:重试次数 0 1 2
刷新票据
购买成功购买失败订单处理中订单处理中(home键操作)用户取消返回的描述语用户关闭返回的描述语
有
completion
苹果交易事务队列中是否有未完成的其他订单
收银台
无网络
完成付款购买状态:成功
整合restore接口需要的数据
/getinfo接口是否成功
IAP处理流程
static NSString *kCancelPayMessage = @\"您取消了支付\";static NSString *kPay58ErrorMessage = @\
埋点数据eventType:5status:2buttonType:repaybuttonValue:重试次数 0 1 2
埋点数据eventType:8status:1buttonType:'ProductPayCNY'
埋点数据eventType:8status:3buttonType:'deviceCanMakePayments'errorMsg:'没有开启应用内购买'
刷新票据信息,发起苹果支付请求
埋点数据eventType:3status:4thirdReturnCode:2thirdReturnMsg:'xxxx'
IAP购买状态设置为用户取消5
购买失败
价格是否相等
是否可以结束交易事务
结束苹果端交易订单
插入或更新IAP付款交易记录
切换IAP商品
埋点数据eventType:8status:2buttonType:'isProductIDEmpty'
埋点数据eventType:8status:2buttonType:'ProductPriceVerify'
appRestart
埋点数据eventType:8status:3buttonType:'isProductIDEmpty'
重试次数是否满3次
在paycenter创建订单前验证是否可发起IAP请求
能否访问苹果官网
retryCount重试次数+1
验证票据
埋点数据eventType:6status:2buttonType:getPaybuttonValue:重试次数 0 1 2
发起IAP请求
向苹果发起请求
是否可发起IAP请求
verifyPayment校验支付产品
重置支付订单
3.3.6版本优化
verifyRetryCount重试次数+1
不能访问
是否购买
埋点数据eventType:5pageState:2status:3productId:'xxxx'errorCode:'xxxx'errorMsg:'xxxx'
verifyReceipt
result.code = MSPay58ResultCodeSuccess; (0)result.desc = @\"支付成功\";
购买流程
code = MSPay58ResultCodeFail; (1)errorCode = skTransaction.error.code;desc = skTransaction.error.localizedDescription;
获取 iapOrderId 和payTime 字段
埋点数据eventType:8status:1buttonType:'ProductPriceVerify'
交易事务状态为“已购买”
结束购买给出提示
购买成功
否,重试
IAP购买状态设置为交易失败4
无界面IAP
加密验证
返回的transactions个数为0 && 错误码为空
本地有未完成订单
筛选是否有不合法的商品,如果有,flag设为YES
商品价格不一致
backToFore
埋点数据eventType:5status:1buttonType:repaybuttonValue:重试次数 0 1 2
埋点数据eventType:5status:3pagestate:1productId:'xxxx'errorCode:'xxxx'errorMsg:'xxxx'
埋点数据eventType:3status:1thirdReturnCode:2thirdReturnMsg:'xxxx'
不是人民币,则代表币种错误
商品ID是否存在
状态是否为“购买中”
删除本地订单
给出弹框提示
kPayQueryOrderNetworkErrorMessage = 网络异常,请检查网络后查询商品购买结果
判断是否存在对象paymentCompletion
订单核实网络错误
获取产品信息
是否获取到本地票据
票据刷新超时且显示loading
埋点数据eventType:8status:1buttonType:'productIDLegallyValid'
埋点数据eventType:8status:3buttonType:'productIDLegallyValid'errorCode:'xxxx'
SDK原流程图
存在payId
埋点数据eventType:5status:1pagestate:1productId:'xxxx'
苹果finish订单1、restore请求成功2、重试3次均失败
埋点数据eventType:8status:3buttonType:'ProductPayCNY'
埋点数据eventType:8status:1buttonType:'isProductIDEmpty'
埋点数据eventType:7status:1buttonType:'callIAP'
埋点数据eventType:8status:2buttonType:'productIDLegallyValid'
埋点数据eventType:6status:1buttonType:repaybuttonvalue:重试次数 0 1 2
用户是否取消
埋点数据eventType:8status:3buttonType:'ProductPriceVerify'
!paymentProduct.skTransaction.error
是否存在交易事务
创建支付订单
使用IAP处理支付订单
请求restore接口
埋点数据eventType:5status:3buttonType:repaybuttonValue:重试次数 0 1 2
埋点数据eventType:8status:1buttonType:'deviceCanMakePayments'
自动续订订阅类型产品处理
商品类型是否为自动续订订阅
判断是否为自动续订订阅
订单核实失败
网络是否正常
埋点数据eventType:1pageType:'iap支付弹窗'status:1
交易事务状态是否“购买中”
商品列表为空或有不合法的商品
failTransactionVerifyRetryCount重试次数+1
请求超时
设置completion
完成付款购买状态:取消
处理票据信息
埋点数据eventType:6status:3buttonType:repaybuttonValue:重试次数 0 1 2
进入购买流程
验证票据流程
无
0 条评论
回复 删除
下一页