官方文档:手机号快速验证组件 | 微信开放文档
步骤1:获取code,需要将 button 组件 open-type
的值设置为 getPhoneNumber
,当用户点击并同意之后,通过 bindgetphonenumber
事件获取回调信息;
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
手机号快捷登录
</button>
getPhoneNumber(e){
console.log(e.detail.code) // 动态令牌code
console.log(e.detail.errMsg) // 回调信息(成功失败都会返回)
console.log(e.detail.errno) // 错误码(失败时返回)
},
注:官方文档写的是bindgetphonenumber="getPhoneNumber"
这里我们需要把bindgetphonenumber改为@getphonenumber
步骤2:获取access_token ,通过 getAccessToken | 微信开放文档 获取多端后台接口调用凭据;
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/token',
method: 'GET',
data:{
grant_type: 'client_credential',
appid: 'xxx',
secret: 'xxx',
},
success:(res)=>{
this.access_token = res.data.access_token
}
})
appid和secret通过 微信公众平台 → 管理 → 开发管理 获取。
步骤3:通过code和access_token去调用获取手机号 | 微信开放文档,获取用户手机号;
wx.request({
url: 'https://api.weixin.qq.com/wxa/business/getuserphonenumberaccess_token='+this.access_token,
method: 'POST',
data:{
code: e.detail.code
},
success:(response)=>{
console.log(response.data.phone_info.phoneNumber) //获取用户手机号
}
})
注:access_token参数是拼在请求URL里的,code是放在data里。
END:大功告成!👏👏😊😊😊👍👍