在使用企业微信wx.qy.login API进行登录获取【session_key】时,报出错误码:60020
此错误记得好像意指的是获取的企业【access_token】用以去置换登录令牌【session_key】时,下发【access_token】的IP地址和获取【session_key】的IP不一致,所以需要再在关联的小程序中配置【企业可信IP】
not allow to access from your ip, hint: [1688706313500611129503023],
from ip: 116.228.224.178, more info at
https://open.work.weixin.qq.com/devtool/query?e=60020
登录代码
// 获取【access_token】,用以置换登录session_key
const {corpid, corpsecret} = this.globalData
wx.request({
url: 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid='+corpid+'&corpsecret='+corpsecret,
success(res){
console.log('access_token', res.data.access_token)
wx.setStorageSync('access_token', res.data.access_token)
},fail(error){
console.log(error)
}
})
// 获取session_key
wx.qy.login({
success(res_login){
const access_token = wx.getStorageSync('access_token')
wx.request({
url: 'https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token='+access_token+'&js_code='+res_login.code+'&grant_type=authorization_code',
success(res){
if (res.data.session_key != undefined) {
wx.setStorageSync('session_key', res.data.session_key)
}
else{
console.log(res.data.errmsg)
}
},fail(error){
console.log(error)
}
})
},fail(error){
console.log(error)
}
})
解决方案:
1、使用管理员微信登录企业微信管理,点击【应用管理】
2、在应用【自建】中,选择小程序
3、在企业微信自建应用小程序中找到【企业可信IP】,点击【配置】
4、将报错的IP地址配置到上面后,点击确认即可
初次配置【企业可信IP】时,如果小程序应用未配置【可信域名】或【接收消息服务器URL】则需要先配置任意一项
设置接收消息服务器URL:
这里使用的方法是通过微信对话平台提供的对话机器人服务
微信对话平台: https://openai.weixin.qq.com/
1、使用微信扫码登录微信对话平台管理
2、点击左边菜单中的【发布管理】——【应用绑定】——【企业微信】,使用企业微信号扫码登录
3、拿到【接收消息服务器URL】地址
4、在【发布管理】,点击【上线发布】——【发布】——【确认】,在此微信对话机器人就创建完成了
5、返回到企业微信自建的小程序应用中,找到【接收消息】栏,点击设置API
6、将刚刚创建的微信对话机器人获得的参数对应填写入下方的输入框中,最后点击保存即可