获取方式参考小程序登录体系。
1、小程序端代码
调用登录接口,回调中用 code 换取 openid。
onLaunch(options) {
wx.login({
success: function (res) {
console.log('login',res);
wx.request({
url: 'http://localhost:3000/code2Session',
headers: {
'Content-Type': 'application/json'
},
method: "POST",
data: {
code: res.code
},
success: function(res) {
if(res.data.openid){
sensors.setOpenid(res.data.openid);
}
},
complete: function() {
sensors.init();
}
})
},
fail: function () {
sensors.init();
}
})
}
2、服务端代码
增加与微信接口的交互,获取 openid 返回给小程序端:
// appid 和 appsecret 存储在服务端
var appId = config.appId,
appSecret = config.appSecret;
router.post('/code2Session', function(req, res) {
console.log(req.body);
var param = {
'appid': appId,
'secret': appSecret,
'js_code': req.body.code,
'grant_type': 'authorization_code'
}
var url = 'https://api.weixin.qq.com/sns/jscode2session?' + querystring.stringify(param);
// console.log(url);
axios.get(url)
.then(function(response) {
console.log('response', response.data);
res.json(response.data)
})
.catch(function(err) {
console.log(err)
res.json(err)
})
.then(function() {
})
})