企业微信小程序登录获取用户信息和微信小程序获取用户信息步骤不太一样,其中微信小程序获取用户信息需要做低版本兼容,具体移步微信小程序获取用户信息,所以首先需要判断当前运行环境是企业微信还是微信:
// 获取微信运行环境信息,可在app.vue中获取后赋值,vue实例直接用
// #ifdef MP-WEIXIN
const res = wx.getSystemInfoSync()
Vue.mixin({
data() {
return {
wxRunInfo:res,
};
}
});
// #endif
点击注册获取用户信息,需判断如果是企业微信小程序则需要用企业微信小程序注册流程:
// #ifdef MP-WEIXIN
wx.qy.login({
success: function(res) {
if (res.code) {
that.model.code = res.code
//生成并获取session_key
that.$fly.get('/getsessionKey.php',{
code:res.code
}).then(res => {
if(res.code==0){
that.msgTip('登录失败')
return
}else{
that.model.userid = res.data.userid //获取到userId和session_key
}
//校验session_key,若过期重新登录生成session_key;这一步不太重要,不过最好校验一下
wx.qy.checkSession({
success: function(){
//校验成功,开始获取微信昵称
let promise1 = new Promise((resolve,reject)=>{
wx.qy.getEnterpriseUserInfo ({
success: function(res) {
that.model.wx_nickname = res.userInfo.name
resolve(res)
},
fail:function(err){
reject(err)
}
})
})
//获取微信头像
let promise2 = new Promise((resolve,reject)=>{
wx.qy.getAvatar({
success: function(res) {
console.log(res)
that.model.wx_avatarurl = res.avatar
resolve(res)
},
fail:function(err){
reject(err)
}
})
})
Promise.all([promise1,promise2]).then(res=>{
//头像,昵称获取到了,执行正常注册流程
that.register()
}).catch(err=>{
console.log(err)
})
},
fail: function(){
// session_key 已经失效,重新执行本函数
that.wxLogin()
}
})
}).catch(err=>{
console.log(err)
})
}
},
fail(err) {
console.log(err)
}
});
// #endif