1. Masukkan halaman berikut dari laluan akaun awam
""https://---------/wxCode?appid=--------&redirect_uri=------- &response_type =kod&skop=snsapi_userinfo
2. Kod html wxCode ialah kod pada github Sumber kod sumber ialah https://github.com/HADB/GetWe...
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>微信登录</title>
</head>
<body>
<script>
var GWC = {
version: '1.1.1',
urlParams: {},
appendParams: function(url, params) {
if (params) {
var baseWithSearch = url.split('#')[0];
var hash = url.split('#')[1];
for (var key in params) {
var attrValue = params[key];
if (attrValue !== undefined) {
var newParam = key + "=" + attrValue;
if (baseWithSearch.indexOf('?') > 0) {
var oldParamReg = new RegExp('^' + key + '=[-%.!~*\'\(\)\w]*', 'g');
if (oldParamReg.test(baseWithSearch)) {
baseWithSearch = baseWithSearch.replace(oldParamReg, newParam);
} else {
baseWithSearch += "&" + newParam;
}
} else {
baseWithSearch += "?" + newParam;
}
}
}
if (hash) {
url = baseWithSearch + '#' + hash;
} else {
url = baseWithSearch;
}
}
return url;
},
getUrlParams: function() {
var pairs = location.search.substring(1).split('&');
for (var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('=');
if (pos === -1) {
continue;
}
GWC.urlParams[pairs[i].substring(0, pos)] = decodeURIComponent(pairs[i].substring(pos + 1));
}
},
doRedirect: function() {
var code = GWC.urlParams['code'];
var appId = GWC.urlParams['appid'];
var scope = GWC.urlParams['scope'] || 'snsapi_base';
var state = GWC.urlParams['state'];
var redirectUri;
if (!code) {
//第一步,没有拿到code,跳转至微信授权页面获取code
redirectUri = GWC.appendParams('https://open.weixin.qq.com/connect/oauth2/authorize#wechat_redirect', {
'appid': appId,
'redirect_uri': encodeURIComponent(location.href),
'response_type': 'code',
'scope': scope,
'state': state,
});
} else {
//第二步,从微信授权页面跳转回来,已经获取到了code,再次跳转到实际所需页面
redirectUri = GWC.appendParams(GWC.urlParams['redirect_uri'], {
'code': code,
'state': state
});
}
location.href = redirectUri;
}
};
</script>
</body>
</html>
3 Apabila memasuki halaman parameter, redirect_uri=-------, dapatkan kod daripada url, simpan dalam kuki, dan rekodkannya.
4. Antara muka php dipanggil dalam halaman ini. Dapatkan kod dan hantarkannya. PHP mendapat kod dan memanggil antara muka WeChat untuk mendapatkan akses_token.
Memandangkan perkara di atas tidak dapat menyelesaikan masalah, pelarasan berikut telah dibuat:
1. Buat entri dari fail Php dan pergi terus ke halaman lompatan ialah fail html H5 di bawah nama domain semasa Selepas kebenaran diluluskan, parameter html halaman lompatan.
2. Minta antara muka php dalam html H5 ini dan hantar kod dalam url
3.php memperoleh akses_token melalui kod yang diluluskan, dan juga melaporkan errcode = 40163;
Laluan masuk
ht tps://api
/getWXCode?redirect_uri=htt ps://api
/getWXCode?redirect_uri=htt ps://api/here in fail php fungsi )
URL halaman yang dipaparkan dengan parameter kod dihantar dalam halaman ini melalui $.getJSON("https://api
崩溃!!!
🎜Jadi, cari punca dan penyelesaiannya. 🎜
Kod hanya boleh digunakan sekali Kod yang diperolehi dalam js digunakan dua kali apabila ia dipindahkan ke halaman lain;
GWC.urlParams['redirect_uri'] hendaklah mewakili alamat hujung belakang khusus