小程序
小游戏
企业微信
微信支付
扫描小程序码分享
微信7.0.0版本,所有机型,未上线正在测试的体验版本,登录切换手机号无效,只登录取绑定手机号;切换手机号点击允许授权调wx.login()发送code到后台换取对应openId,后台反应该code还是原来绑定手机号的code !!
8 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
我也遇到和你一样的问题 , 怎么解决 ? 关注ing
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
你好,请问是不是连续调用两次 wx.login code 没有更新?
只点了一次,未上线的体验版本,麻烦你去试下
这边测试了没有复现问题,code是有更新的,有在onShow 做了什么逻辑么?给个代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)看看
另外,再确认一点:
“切换手机号点击允许授权调wx.login()发送code到后台换取对应openId,后台反应该code还是原来绑定手机号的code”所以这句话的意思是,上次 wx.login 调用拿到 code 和这次调用 wx.login 拿到的 code 一样是么……
描述错了,code是不一样的,但是去后台换取回来的用户是一样的
楼主贴代码比较累,我转个官方常用回复给你:
必要时可提供代码片段 (https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
手机号码管理有什么作用呢?我第一次用code换取的unionid与切换手机号码后用code换取的unionid一毛一样,那我如何去做区分?
麻烦回复下问题好吗 ??? https://developers.weixin.qq.com/community/develop/doc/000ec2bb19c168ecb0d73fe8c51800
是不是没有清除缓存?
弹框授权时默认卸载了原页面,调用了onHide生命周期函数,你是不是在这里面把授权组件删除了?
getPhoneNumber:
function
(e) {
if
(e.detail.errMsg ===
'getPhoneNumber:ok'
) {
//用户同意授权
this
.setData({
phoneInfo: e.detail
})
.login()
}
else
{
//用户拒绝授权
console.log(199)
return
;
//用户按了拒绝按钮
},
login:
let that =
wx.login({
success(res) {
(res.code) {
wxGetData({
api:
'weixin/xcxLogin'
,
//登录接
data: {
code: res.code,
encryptedData: that.data.phoneInfo.encryptedData,
iv: that.data.phoneInfo.iv
}).then(res => {
console.log(res)
(!res.data || res.data.code !=
'0'
wx.hideLoading();
wx.showModal({
title:
'提示'
content: res.data.message,
showCancel:
false
let userInfo = res.data.data.member
wx.setStorageSync(
'token'
, res.data.data.access_token)
'userInfo'
, userInfo)
let pages = getCurrentPages();
//当前页面
let prevPage = pages[pages.length - 2];
//上一页面
let currentPage = pages[pages.length - 1];
(currentPage.options.needLoad ==
'1'
let options = prevPage.options
prevPage.onLoad(options)
wx.navigateBack();
content:
'无法登录,请重试'
没有啊,只调了一次,只有授权登录点击允许按钮才会调wx.login()
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
我也遇到和你一样的问题 , 怎么解决 ? 关注ing
你好,请问是不是连续调用两次 wx.login code 没有更新?
只点了一次,未上线的体验版本,麻烦你去试下
这边测试了没有复现问题,code是有更新的,有在onShow 做了什么逻辑么?给个代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)看看
另外,再确认一点:
“切换手机号点击允许授权调wx.login()发送code到后台换取对应openId,后台反应该code还是原来绑定手机号的code”
所以这句话的意思是,上次 wx.login 调用拿到 code 和这次调用 wx.login 拿到的 code 一样是么……
描述错了,code是不一样的,但是去后台换取回来的用户是一样的
楼主贴代码比较累,我转个官方常用回复给你:
必要时可提供代码片段 (https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
手机号码管理有什么作用呢?我第一次用code换取的unionid与切换手机号码后用code换取的unionid一毛一样,那我如何去做区分?
麻烦回复下问题好吗 ??? https://developers.weixin.qq.com/community/develop/doc/000ec2bb19c168ecb0d73fe8c51800
是不是没有清除缓存?
弹框授权时默认卸载了原页面,调用了onHide生命周期函数,你是不是在这里面把授权组件删除了?
getPhoneNumber:
function
(e) {
if
(e.detail.errMsg ===
'getPhoneNumber:ok'
) {
//用户同意授权
this
.setData({
phoneInfo: e.detail
})
this
.login()
}
else
{
//用户拒绝授权
console.log(199)
return
;
//用户按了拒绝按钮
}
},
login:
function
(e) {
let that =
this
wx.login({
success(res) {
if
(res.code) {
wxGetData({
api:
'weixin/xcxLogin'
,
//登录接
data: {
code: res.code,
encryptedData: that.data.phoneInfo.encryptedData,
iv: that.data.phoneInfo.iv
}
}).then(res => {
console.log(res)
if
(!res.data || res.data.code !=
'0'
) {
wx.hideLoading();
wx.showModal({
title:
'提示'
,
content: res.data.message,
showCancel:
false
})
return
;
}
let userInfo = res.data.data.member
wx.setStorageSync(
'token'
, res.data.data.access_token)
wx.setStorageSync(
'userInfo'
, userInfo)
let pages = getCurrentPages();
//当前页面
let prevPage = pages[pages.length - 2];
//上一页面
let currentPage = pages[pages.length - 1];
//当前页面
if
(currentPage.options.needLoad ==
'1'
) {
let options = prevPage.options
prevPage.onLoad(options)
}
wx.navigateBack();
})
}
else
{
wx.hideLoading();
wx.showModal({
title:
'提示'
,
content:
'无法登录,请重试'
,
showCancel:
false
})
return
;
}
}
})
}
你好,请问是不是连续调用两次 wx.login code 没有更新?
没有啊,只调了一次,只有授权登录点击允许按钮才会调wx.login()