uniapp获取手机号(详细教程附代码)
个人小程序不能使用这个功能,必须是企业小程序,如果没权限那就是没有完成微信的认证,必须先去认证。
代码如下:
uni.login({provider: 'weixin',success:res=>{this.code = res.code}});
代码如下:
uni.request({url: 'https://api.weixin.qq.com/sns/jscode2session', method:'GET', data: { appid: 'xxx', //你的小程序的APPID secret: 'xxx', //你的小程序的secret, js_code:this.code, //wx.login 登录成功后的code grant_type: 'authorization_code',}, success: (cts) => { // 换取成功后 暂存这些数据 留作后续操作 this.openId=cts.data.openid //openid 用户唯一标识 this.unionid=cts.data.unionid //unionid 开放平台唯一标识 当公众号和小程序同时登录过才会有this.session_key=cts.data.session_key //session_key 会话密钥 console.log(cts)console.log(this.openId,this.session_key)} })
注意:必须用button 设置为 open-type=“getPhoneNumber”
代码如下:
getPhoneNumber(e){console.log(e.detail.errMsg) // 判断用户是否允许获取手机号console.log(e);let pc = new WXBizDataCrypt('appid',this.session_key);let data = pc.decryptData(e.detail.encryptedData,e.detail.iv); console.log(data) //data就是最终解密的用户信息 },
其中解密需要文件:
import WXBizDataCrypt from '../../utils/WXBizDataCrypt.js'
下载地址:服务端获取开放数据 | 微信开放文档 (qq.com)
最终点击Button时 :
来源地址:https://blog.csdn.net/qq_58648235/article/details/126646549