小程序
小游戏
企业微信
微信支付
扫描小程序码分享
之前是通过将 wx.login 和 wx.getUserInfo 绑定使用解密获取用户unionid,现在怎么获取用户的unionid呢?
wx.login
wx.getUserInfo
看了下最新的文档,现在是满足下面条件wx.login是会直接返回unionid的,如果不满足要怎么获取呢?
1.在微信开放平台下存在同主体的App、公众号、小程序。
2.用户关注了某个相同主体公众号,或曾经在某个相同主体App、公众号上进行过微信登录授权。
8 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
用户体现太差了,用户一进来等于要询问两次他授权登录
现在必须用按钮触发授权,不然拿不到用户信息,在第一次需要获取用户信息的时候加个事件触发,让用户操作授权。
已解决,不知道靠不靠谱贴上代码。 button 组件授权后在调用wx.login 进行解密
userInfoHandler: function (e) {
let that = this;
if (e.detail.errMsg =='getUserInfo:ok') {
wx.login({
success: function (r) {
let code = r.code;
if (code) {
// 解密用户数据
wx.request({
url: url,
method: 'post',
header: {'content-type': 'application/x-www-form-urlencoded'},
data: {encryptedData: e.detail.encryptedData, iv: e.detail.iv, code: code},
success: function (data) {
console.log(data);
if (data.data.status == 1) {
app.globalData.userInfo = data.data.userInfo;
wx.setStorageSync('userInfo', data.data.userInfo); // 缓存用户信息
typeof cb == "function" && cb(app.globalData.userInfo);
app.navigateBack('navigateTo', '/pages/index/index');
} else {
// 失败
that.showMsg(data.data.msg);
}
},
fail: function (err) {
that.showMsg(err.errMsg);
console.log(err)
})
console.log('获取用户登录态失败!', err)
console.log('登陆失败', err);
在个人界面增加一个授权按钮
发现微信乱七八糟的,这个解密,然后看文档说不推荐用这个 encryptedData了
用这个 有时候解密不出来,有时候解密出来 的数据 unionid的字段名称有时候叫 unionid 有时候叫 unionId
微信这块设计 太low
我们都好多天
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
用户体现太差了,用户一进来等于要询问两次他授权登录
现在必须用按钮触发授权,不然拿不到用户信息,在第一次需要获取用户信息的时候加个事件触发,让用户操作授权。
已解决,不知道靠不靠谱贴上代码。 button 组件授权后在调用wx.login 进行解密
userInfoHandler: function (e) {
let that = this;
if (e.detail.errMsg =='getUserInfo:ok') {
wx.login({
success: function (r) {
let code = r.code;
if (code) {
// 解密用户数据
wx.request({
url: url,
method: 'post',
header: {'content-type': 'application/x-www-form-urlencoded'},
data: {encryptedData: e.detail.encryptedData, iv: e.detail.iv, code: code},
success: function (data) {
console.log(data);
if (data.data.status == 1) {
app.globalData.userInfo = data.data.userInfo;
wx.setStorageSync('userInfo', data.data.userInfo); // 缓存用户信息
typeof cb == "function" && cb(app.globalData.userInfo);
app.navigateBack('navigateTo', '/pages/index/index');
} else {
// 失败
that.showMsg(data.data.msg);
}
},
fail: function (err) {
that.showMsg(err.errMsg);
console.log(err)
}
})
} else {
that.showMsg(err.errMsg);
console.log('获取用户登录态失败!', err)
}
},
fail: function (err) {
that.showMsg(err.errMsg);
console.log('登陆失败', err);
}
})
}
}
在个人界面增加一个授权按钮
发现微信乱七八糟的,这个解密,然后看文档说不推荐用这个 encryptedData了
用这个 有时候解密不出来,有时候解密出来 的数据 unionid的字段名称有时候叫 unionid 有时候叫 unionId
微信这块设计 太low
我们都好多天