微信sdk底层代码逻辑分析

1.主扫

调用https://api.mch.weixin.qq.com/pay/micropay

得到的返回码中关注return_code,trade_state,err_state,当:

return_code=FAIL,支付失败退出;

return_code=SUCCESS,trade_state=SUCCESS,直接成功支付退出;

return_code=SUCCESS,trade_state=USERPAYING,会最多轮询三次调用查询接口,返回trade_state=SUCCESS才返回成功,三次都没有出现trade_state=SUCCESS,支付失败退出;

若非上面情况,当err_state=AUTHCODEEXPIRE/NOTENOUGH,会调用取消交易的接口,当err_state=AUTH_CODE_INVALID,支付失败退出;

若非上面所有场景,则最多轮询三次调用查询接口,返回trade_state=SUCCESS才返回成功,否则调用取消交易接口并支付失败退出;

2.被扫

场景一:发送调用NATIVE支付,生成预付订单,当用户扫码支付成功后会有回调请求到我们后台,我们后台再更新单据状态。

场景二:用户扫商户固定码牌进入我们的支付h5页面,输入金额确认后调用我们后台,我们后台调用JSAPI支付,等待回调请求再更新单据支付状态;

猜你喜欢

转载自blog.csdn.net/qq_36102959/article/details/84097739