微信公众号 h5获取用户code

2,002 阅读1分钟

微信公众号 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;
	},