<button class="login" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">微信授权一键登录</button>
getPhoneNumber(e) {
let self = this
if (e.detail.errMsg && e.detail.errMsg == 'getPhoneNumber:fail user deny') {
console.log('用户拒绝获取手机号码');
return false
}
self.encryptedData = e.detail.encryptedData; //需要解密的内容
self.iv = e.detail.iv; //偏移量
self.wxLogin()
},
wxLogin() {
let self = this
uni.login({
provider: 'weixin',
success: function(res) {
if (res.code) {
self.$u.post('/getopenid', {
loginCode: res.code
}).then(res => {
if (res.openid) {
let appId = '';//微信小程序appid
let session_key = res.session_key;
const pc = new RdWXBizDataCrypt(appId, session_key);
const data = pc.decryptData(self.encryptedData, self.iv);
if (data) {
self.$store.commit('SET_PHONE', data.phoneNumber)
self.mobile = data.phoneNumber
}
self.open_id = res.openid
self.$store.commit('SET_OPENID', res.openid)
self.creatUser()
}
})
} else {
uni.showModal({
title: '授权失败',
content: '错误原因' + res.message,
showCancel: false
});
}
},
fail: (err) => {
uni.showModal({
title: '授权失败',
content: '获取授权失败:' + err
});
}
})
},
creatUser() {
this.$u.post('/adduser', {
openid: this.open_id,
mobile: this.mobile
}).then(res => {
if (res.status == 200) {
if (res.data.trueName && res.data.identityCard) {
this.$store.commit('SET_CERFICATE', true)
if (this.type) {
if (this.type == 'index') {
uni.switchTab({
url: '/pages/index/index'
})
}
//跳转回原地址
} else {
uni.switchTab({
url: '/pages/my/my'
})
}
} else {
//没实名认证去认证
this.$store.commit('SET_CERFICATE', false)
uni.navigateTo({
url: '/pages/certifacate/certifacate?type=' + this.type
})
}
}
})
},
uniapp 手机号授权登录 微信低版本兼容问题
最新推荐文章于 2024-07-23 09:36:36 发布