个人小程序不能使用这个功能,必须是企业小程序,如果没权限那就是没有完成微信的认证,必须先去认证。
一、获取code
代码如下:
uni.login({
provider: 'weixin',
success:res=>{
this.code = res.code
}
});
二、通过code获取获取openId 和 session_key
代码如下:
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”
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">唤起授权手机号</button>
代码如下:
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://www.toymoban.com/news/detail-515657.html
文章来源地址https://www.toymoban.com/news/detail-515657.html
到了这里,关于uniapp获取手机号(详细教程附代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!