3—票据校验流程
2021-04-02 18:00:54 0 举报
登录查看完整内容
paycenter票据校验流程
作者其他创作
大纲/内容
verifyAutoSubscriptionPaymentTransation
结束交易事务
订单核实失败state = IAPOrderVerifyStateFailure
验证票据verifyReceipt
是否为续费或恢复购买
否
IAP订单核实结果处理
有网络
background值是否为true
成功
pendingQueue挂起队列
票据刷新超时且显示loading
可用
是
埋点数据eventType:6status:1buttonType:getPaybuttonValue:重试次数 0 1 2
埋点数据eventType:5pageState:3status:2
重试次数是否满3次
否,重试
需要从苹果端拉取票据
订单核实网络错误state = IAPOrderVerifyStateNetworkError
showloading = YES
/dealpay接口请求
paycenter票据校验结果处理流程
交易事务状态为“已购买”
paycenter票据校验流程
用户是否取消
canFinishTransaction = YES;
iapOrderInfo中是否存在payId
是否请求成功
无网络状态
当前网络是否可用
有
当时间间隔大于最大间隔
校验本次触发刷新请求的票据checkVerifyPaymentFromIdentifierinBackgroundtransactionreceiptInfocompletion
请求是否错误
verifyRetryCount重试次数+1
retryCount重试次数+1
能否访问苹果官网
failTransactionVerifyRetryCount重试次数+1
订单核实成功state = IAPOrderVerifyStateSuccess
handleVerifyPaymentProductverifyStatecanFinishTransactionfromScenecompletion
是否可以finish
向苹果发起票据刷新
traceTransaction
是否有交易事务
失败
canFinishTransaction = NO;
插入或更新IAP付款交易记录
获取本地票据
埋点数据eventType:6status:3buttonType:getPaybuttonValue:重试次数 0 1 2
verifyRetryCount重试满3次 或failTransactionVerifyRetryCount重试满3次
大于
是否在刷新票据中
根据标识符验证付款verifyPaymentFromIdentifierinBackgroundtransactionreceiptInfocompletion
校验阻塞队列中请求的票据reStartVerifyRequestFromPendingQueue
核验付款verifyPaymentProductfromSceneinBackground:NOcompletion
第一次购买
埋点数据eventType:5pageState:3status:1
verifyRetryCount重试次数超过3次且交易事务状态为已购买(2)IAPPaymentTransactionStatePurched
checkVerifyPaymentFromIdentifier
请求超时
埋点数据eventType:6status:2buttonType:getPaybuttonValue:重试次数 0 1 2
status = IAPRequestStatusSuccess
埋点数据eventType:5pageState:3status:3
status = IAPRequestStatusFailure
时间间隔设置为最大间隔kPaymentTansactionUploadReceiptDataMaxIntervalTime
本地票据获取失败
回调
app进入前台backToFore
时间间隔 = interval = paymentTransaction.verifyRetryCount * kPaymentTransactionUploadReceiptDataIntervalTime
不可用
showloading = NO
app重启appRestart
不能访问
是否可以结束交易事务
续费或恢复购买
0 条评论
回复 删除
下一页