小程序获取手机号
1、基本介绍
官方文档:https://developers.weixin.qq.com/miniprogram/dev/server/API/user-info/phone-number/api_getphonenumber.html
- 小程序通过按钮让用户主动授权,拿到一个一次性 code,再把这个 code 传给后端,后端调用微信接口换取手机号
用户点击“获取手机号”按钮
微信弹出授权弹窗,用户同意后返回 code
小程序把 code 传给后端
后端用 code 调用微信接口换取手机号
后端把手机号或登录结果返回给小程序
2、手机号获取凭证
官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
Page({
getPhoneNumber (e) {
console.log(e.detail.code) // 动态令牌
console.log(e.detail.errMsg) // 回调信息(成功失败都会返回)
console.log(e.detail.errno) // 错误码(失败时返回)
}
})
将 bindgetphonenumber 事件回调中的动态令牌 code 传到开发者后台,并在开发者后台调用微信后台提供的 phonenumber.getPhoneNumber 接口,消费 code 来换取用户手机号
每个 code 有效期为 5 分钟,且只能消费一次
- 注:getPhoneNumber 返回的 code 与 wx.login 返回的 code 作用是不一样的,不能混用
3、接口调用凭证
官方文档:https://developers.weixin.qq.com/miniprogram/dev/server/API/mp-access-token/api_getaccesstoken
- 后端需要先拿到小程序 access_token,再用 code 换取手机号


