微信公众号 h5获取用户code ,下面是全部代码复制就可以使用填写自己的appid 和redirect_uri, url需要encodeURIComponent处理一下
// 进来先看url上有没有code 方法
getUrlCode() {
var url = window.location.href
this.winUrl = url
//如果有就直接截取code
if (url.indexOf("?") != -1) {
let obj = this.urlToObj(url)
console.log(1111,obj.code)
} else {
//如果没有就调用下面的getCode方法获取code
this.getCode()
}
},获取code方法
getCode() {
this.code = ''
var appid = '' //自己的appid
var redirect_uri = 'http://devotc-m.ydjk5.com/#/pages/Login/Login' //自己的回调url
redirect_uri = (redirect_uri + '').toString();
//url转码
redirect_uri = encodeURIComponent(redirect_uri).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
history.pushState(null, null, "/");
window.location.href =
`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${redirect_uri}&response_type=code&scope=
snsapi_userinfo&state=123&component_appid=wxfd4a6038404bd033#wechat_redirect`
},
//截取url 方法
urlToObj(str) {
var obj = {};
var arr1 = str.split("?");
var arr2 = arr1[1].split("&");
for (var i = 0; i < arr2.length; i++) {
var res = arr2[i].split("=");
obj[res[0]] = res[1];
}
return obj;
},