微信支付所经历的流程:
- 1.用户下单后,进行微信授权,获取临时凭证code值。
- 2.把code凭证发送到服务端获取openid。
- 3.通过openid、订单号,从后台获取微信支付参数。
- 4.传入支付参数,唤起微信支付。
- 5.成功、失败、取消回调处理。
第一步:微信授权,获取code值
![订单页面](https://i-blog.csdnimg.cn/blog_migrate/6fb56b3d03e700837923747bc67faa4a.png)
- 点击 “立即支付” 进行微信授权操作:
- 使用GET请求方式,请求后端提供的微信授权接口,并拼接回调url参数(这里的url记得使用encodeURIComponent转码,不然会有问题);
- 请求微信授权接口后,后端会把页面重定向到支付页面,并在路径中携带我们需要的code值;
getAuthCode() {
window.location.href =
'项目域名' + '/api/v1/common/wx/auth?callbackUrl=' +
encodeURIComponent('项目域名' + '/order-pay/')
}
- 获取支付页面url路径中的code值:
- 如果有code值,则直接返回code值,若没有code值,则返回false;
- 拿到code值,接着去获取openid;
getQueryVariable() {
const text_html = window.location.href
let trag = false
let code = ''
if (text_html.indexOf('?') > 0) {
var params = text_html.substring(text_html.indexOf('?') + 1)
if (params) params = params.split('&')
params.forEach(function(p) {
var kv = p.split('=')
if (kv[0