uniapp 手机号授权登录 微信低版本兼容问题

<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
							})
						}
					}
				})
			},

qdzsd: 前端开发时有可能用到的文件 - Gitee.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌桑楚客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值