赞
踩
在开发一款微信小程序时,通常需要用户进行微信登录,并获取用户的手机号码作为用户的唯一标识(userId)。虽然可以通过wx.login来获取用户的openid,但有时候需要获取用户的手机号码以提供更完善的个性化服务,因此探索获取用户手机号码的方式成为开发中的一个重要需求。
目前版本的微信小程序获取用户手机号码的方式如下:
前端开发参考:手机号快速填写组件 | 微信开放文档
后端开发参考:手机号快速填写 | 微信开放文档
open-type
的值设置为getPhoneNumber
,并编写相应的事件监听函数。phonenumber.getPhoneNumber
接口,使用code换取用户的手机号。需要注意的是,获取手机号的功能只允许经过认证的小程序使用,未认证的小程序只能使用测试号进行开发和测试
我们使用 uniapp框架进行前端开发,以下是一个简单的示例代码:
按钮:
<button class="loginbtn" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">手机号快捷登录</button>
getPhoneNumber函数:
getPhoneNumber(e) {
this.code = e.detail.code;
LoginAPI({
code: this.code,
}).then(async (res) => {
console.log('res', res)
});
}
我们使用Node.js进行后端开发,以下是一个简单的示例代码:
public async Login(body){ //检查token有没有过期 let access_token = await this.cacheService.get("access_token") if(!token){ // 获取token const tokendata = await this.httpService.get(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APP_CONFIG.WECHAT.APPID}&secret=${APP_CONFIG.WECHAT.SECRET}`) access_token = tokendata.data.access_token } // 获取手机号 const phonedata = await this.httpService.post(`https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=${access_token}`, { code: body.code }) const phoneNumber = phonedata.data.phone_info.phoneNumber return phoneNumber }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。