-
用户在微信端使用小程序,发起微信支付;(用户)
-
小程序调用微信api(wx.login()),获取到用户登录凭证code(五分钟内有效),小程序将code、需要支付的商品信息等一起发送给自己的商户系统后台;(小程序端)
-
a、商户系统后台获取到小程序传递过来的code,调用微信后台的接口(https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code)
获取到用户的openID;
b、商户系统后台,利用签名算法,将小程序appid、商户ID、随机字符串等一系列参数生成签名;
c、调用微信后台统一下单api,将详细的商户订单信息发送到微信后台,调用成功后,微信后台返回预付单信息等一系列信息;
d、商户系统后台将获取到的预付单信息以及时间戳信息、签名、签名算法、随机字符串等信息传回给
小程序端;(商户系统后台) -
小程序得到后台传过来的各个参数,让用户确认是否支付;(小程序端)
-
用户确认支付;(用户)
-
小程序调用微信支付api:wx.requestPayment(),将预付单信息以及时间戳信息、签名、签名算法、随机字符串等信息传给微信后台,微信后台会将支付结果返回给小程序以及商户系统后台,小程序将结果展示给用户,商户系统后台更新订单的状态。(小程序、商户系统后台)
微信小程序支付详细流程图:
参考链接:https://blog.csdn.net/fredrik/article/details/79697963
微信官方文档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_10&index=1
微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/payment/wx.requestPayment.html?search-key=pay