注意:需要企业账号,以及认证过的号码才可以
客户端获取电话号码 服务端依赖
第一步
const getCode = function() {return new Promise(function(resolve, reject) {wx.login({withCredentials: true,success(res) {resolve(res);},fail(err) {reject(err)}})})}const code2Session = function(code) {return request({url: 'https://api.weixin.qq.com/sns/jscode2session',method: 'get',data: {appid: "xxxx",secret: "xxxx",js_code: code,grant_type: 'authorization_code'},headers: {"content-ype": "application/json"}})}request.login.getCode().then(function(res) {if (res.code) {request.login.code2Session(res.code).then(function(result) {// result 返回 openid与sessionKey// 成功,记住 sessionKey})}})
第二步
获取iv,encryptedData,下载解密包,利用解密包,利用解密包,获取到真实的电话号码

需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合 session_key 以及 app_id 进行解密获取手机号。<button open-type="getPhoneNumber" bindgetphonenumber="bindgetphonenumber">登录</button>uni-app 中使用want<view class="c-box flex"><van-button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" size="mini" type="primary">微信登录</van-button></view><script>export default {data() {return {}},onLoad() {},methods: {getPhoneNumber: function (e) {if (e.detail.iv) {console.log("iv", e.detail.iv);console.log("encryptedData", e.detail.encryptedData)return}if (e.detail.errMsg) {return}},}}</script>

