小程序獲取openid的案例:
第一步,獲取code,在app.js文件添加以下代碼:
//app.js
App({
onLaunch: function() {
wx.login({
success: function(res) {
if (res.code) {
//發起網絡請求
wx.request({
url: 'https://test.com/onLogin',
data: {
code: res.code
}
})
} else {
console.log('獲取用戶登錄態失敗!' + res.errMsg)
}
}
});
}
})
第二步,在登錄頁面根據code獲取openid,代碼:
//根據code獲取openid等信息
wx.login({
//獲取code
success: function (res) {
var code = res.code; //返回code
console.log(code);
var appId = '...';
var secret = '...';
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appId + '&secret=' + secret + '&js_code=' + code + '&grant_type=authorization_code',
data: {},
header: {
'content-type': 'json'
},
success: function (res) {
var openid = res.data.openid //返回openid
console.log('openid為' + openid);
}
})
}
})
//正常返回的JSON數據包
{
"openid": "OPENID",
"session_key": "SESSIONKEY",
"unionid": "UNIONID"
}
//錯誤時返回JSON數據包(示例為Code無效)
{
"errcode": 40029,
"errmsg": "invalid code"
}