微信小程序获取手机号,要分几步,再次做个记录,希望耐心看完。
1. 第一步,先获取code,并不是登入的那个code,
2. 第二步,根据小程序的appid获取access_token凭证,
3. 第三步,根据code和access_token凭证去换取手机号,
4. 手机号码是在后台获取的,我们只需要传code就能获取到用户手机号了。
具体详细步骤请看下面。
微信小程序获取手机号官方文档:(这个功能是收费的)
官方文档使用方法
步骤1:需要将 button 组件 open-type
的值设置为 getPhoneNumber
,当用户点击并同意之后,通过 bindgetphonenumber
事件获取回调信息;
步骤2:将 bindgetphonenumber
事件回调中的动态令牌code
传到开发者后台,并在开发者后台调用微信后台提供的 phonenumber.getPhoneNumber 接口,消费code
来换取用户手机号。每个code
有效期为5分钟,且只能消费一次。
注:getPhoneNumber
返回的 code
与 wx.login
返回的 code
作用是不一样的,不能混用。
注意
从基础库2.21.2开始,对步骤2中换取手机号信息的方式进行了安全升级,上述为新方式使用指南。(旧方式目前可以继续使用,但建议开发者使用新方式,以增强小程序安全性)另外,新方式不再需要提前调用wx.login
进行登录。
开发步骤:
1、前端代码:
点击按钮,获取code
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
换成uniapp代码:
<template>
<u-button open-type="getPhoneNumber" @getphonenumber="getNumber">一键登录</u-button>
</template>
getPhoneNumber (e) {
console.log(e.detail.code) // 动态令牌
console.log(e.detail.errMsg) // 回调信息(成功失败都会返回)
console.log(e.detail.errno) // 错误码(失败时返回)
}
2、后端代码:
获取access_token凭证接口:https://api.weixin.qq.com/cgi-bin/token
第1步,根据小程序的appid获取access_token凭证,
换取手机号接口:https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token='.$access_token;
第2步,根据code和access_token凭证去换取手机号,
第3步,注意事项:
微信小程序,必须是认证的,备案的,不让上线不了,
域名必须是备案的,https加密的,不让无法获取数据,
日期:2025.4.20
广州