以下是获取 access_token 的基本步骤:
1. 小程序端通过 wx.login 获取 code:
wx.login({
success: function(res) {
if (res.code) {
const code = res.code;
// 将 code 发送到服务器
// 服务器通过 code 获取 openid 和 session_key,然后再获取 access_token
} else {
console.error('登录失败!' + res.errMsg);
}
}
});
2. 服务器通过 code 获取 openid 和 session_key:
使用微信提供的登录凭证校验接口,向微信服务器发送请求,获取用户的 openid 和 session_key。
const appid = 'your_appid';
const appsecret = 'your_appsecret';
const code = 'code_from_client';
const apiUrl = `https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&secret=${appsecret}&js_code=${code}&grant_type=authorization_code`;
request(apiUrl, function(error, response, body) {
if (!error && response.statusCode === 200) {
const data = JSON.parse(body);
const openid = data.openid;
const sessionKey = data.session_key;
// 使用 openid 和 session_key 获取 access_token
} else {
console.error('获取 openid 和 session_key 失败!', error);
}
});
3. 使用 openid 和 session_key 获取 access_token:
使用 openid 和 session_key 可以通过微信提供的接口获取 access_token。
const openid = 'openid_from_server';
const sessionKey = 'session_key_from_server';
const apiUrl = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${appsecret}`;
request(apiUrl, function(error, response, body) {
if (!error && response.statusCode === 200) {
const data = JSON.parse(body);
const accessToken = data.access_token;
console.log('Access Token:', accessToken);
// 使用 access_token 调用其他微信接口
} else {
console.error('获取 access_token 失败!', error);
}
});
需要注意的是,access_token 是有过期时间的,过期后需要重新获取。在实际应用中,建议将 access_token 缓存起来,并在过期前更新。并且,请确保对 access_token 进行安全存储,不要暴露在不安全的环境中。
转载请注明出处:http://www.zyzy.cn/article/detail/1083/微信小程序