1、单独使用
wx.getUserProfile({
desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res)
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
2、与wx.login混合使用
//点击的一种方法 方法名
getUserProfile{
wx.getUserProfile({
desc: '用于完善资料',
success: function (userInfoRes) {
//调用 wx.login 登录接口
wx.login({
success: function (res) {
//换取openid & session_key
wx.request({
url: wx.getStorageSync('domainName') + '/WxOpen/OnLogin',
method: 'POST',
header: { 'content-type': 'application/x-www-form-urlencoded' },
data: {
code: res.code
},
success: function (json) {
var result = json.data;
if (result.success) {
wx.setStorageSync('sessionId', result.sessionId);
//校验
wx.request({
url: wx.getStorageSync('domainName') + '/WxOpen/CheckWxOpenSignature',
method: 'POST',
header: { 'content-type': 'application/x-www-form-urlencoded' },
data: {
sessionId: result.sessionId,//wx.getStorageSync('sessionId'),
rawData: userInfoRes.rawData,
signature: userInfoRes.signature
},
success: function (json) {
console.log(json.data);
}
});
//解密数据(建议放到校验success回调函数中,此处仅为演示)
wx.request({
url: wx.getStorageSync('domainName') + '/WxOpen/DecodeEncryptedData',
method: 'POST',
header: { 'content-type': 'application/x-www-form-urlencoded' },
data: {
'type': "userInfo",
sessionId: result.sessionId,//wx.getStorageSync('sessionId'),
encryptedData: userInfoRes.encryptedData,
iv: userInfoRes.iv
},
success: function (json) {
console.log('数据解密:', json.data);
}
});
} else {
console.log('储存session失败!', json);
}
}
})
}
})
}
});
}