uniapp 获取微信小程序手机号码

1.先获取session_key ,openid 

2.写获取手机号码按钮

<button open-type="getPhoneNumber" @getphonenumber="phonenumber">
<input style="width: 100%;" :clearable="false" type="text" @click="phonenumber" :disabled="true" class="weui-input" v-model="mobile" placeholder="点击获取电话号码" />
</button>

3.弹出获取手机号码框 用户同意 获取加密手机号码信息

	        /* 获取手机号码 */
			phonenumber(res) {
    
                console.log(res)        
            }

 4.通过微信提供的解密方法:可以拿到最终的手机号
下载引入的文件链接地址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html

5. 把下载好的加密数据解密算法 放入项目 并且引入 进行解密

import WXBizDataCrypt from "../commn/WXBizDataCrypt.js" // 需要引入

 

	/* 获取手机号码 */
			phonenumber(mbie) {
				let that = this
				uni.login({
					provider: 'weixin',
					success: (res) => {
						console.log(res)
						uniCloud.callFunction({
							name: 'openid',
							data: {
								code: res.code
							}
						}).then(opid => {
							console.log(opid,'openid');
							console.log(mbie,'待解密手机号码');
							let pc = new WXBizDataCrypt('你的微信小程序id',                                 opid.result.session_key);
							let encryptedData =  mbie.detail.encryptedData 
							let data = pc.decryptData(mbie.detail.encryptedData, mbie.detail.iv);
							console.log(data,'就是最终解密的用户信息') //data就是最终解密的用户信息  
							that.mobile = data.phoneNumber
						})
					},
					fail(res) { // 登录失败
						uni.closeAuthView() //关闭一键登录弹出窗口
						console.log('失败')
					},
				})
			},

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值