当前位置:首页 » 《随便一记》 » 正文

2023年微信小程序获取手机号授权登录注册详细教程,包含服务端教程

3 人参与  2023年03月05日 16:25  分类 : 《随便一记》  评论

点击全文阅读


前言

小程序中有很多地方都会用到用户的手机号,比如登陆注册,填写收货地址等等。有了这个组件可以快速获取微信绑定手机号码,无须用户填写。网上大多数教程还是往年的,而微信官方的api已做了修改。本篇文章将使用最新的方法获取手机号

具体实现

前端

获取手机号|微信开放文档

因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发。

另外,新版本接口不再需要提前调用wx.login进行登录。
在这里插入图片描述

需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到动态令牌code

然后把code传到开发者后台,并在开发者后台调用微信后台提供的 phonenumber.getPhoneNumber 接口,消费code来换取用户手机号。

每个code有效期为5分钟,且只能消费一次。

:getPhoneNumber 返回的 code 与 wx.login 返回的 code 作用是不一样的,不能混用。

总结成一句话就是:我们前端只要把getPhoneNumber获取到的code,传给后端就可以了。

在这里插入图片描述
代码示例

<view style="padding: 50rpx;">    <button open-type="getPhoneNumber" type="primary" bindgetphonenumber="getPhoneNumber">微信账号一键登录</button></view>
Page({  getPhoneNumber (e) {        let detail = e.detail;        console.log(detail);        if (detail.errMsg === "getPhoneNumber:ok") {            console.log('用户同意授权');            let code = detail.code; // 动态令牌            console.log(code);            wx.request({                url: '你的接口,比如登录',                data: {                    code                },                success(res) {                    console.log(res.data); // 后端返回解析出的手机号,或者直接返回登录成功的信息                }            })        } else {            console.log('用户拒绝授权');        }  }})

在这里插入图片描述

后端(服务端)

1. 获取请求参数code和access_token

我们服务端调用获取手机号是调用接口:getPhoneNumber

服务端获取手机号 | 微信开放文档
在这里插入图片描述

该接口需要两个请求参数:
在这里插入图片描述

code就是我们前端发送过来的那个

access_token需要服务端调用getAccessToken接口获取:获取接口调用凭据 | 微信开放文档
在这里插入图片描述
请求参数:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=换成你的APPID&secret=换成你的APPSECRET

在这里插入图片描述
然后我们就可以获取到access_token

{"access_token":"ACCESS_TOKEN","expires_in":7200} 

2. 获取手机号

最后使用我们上面提到的getPhoneNumber接口,请求参数为前端传过来的code和我们刚刚获取的access_token即可。

https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=ACCESS_TOKEN

请求参数

{"code": "e31968a7f94cc5ee25fafc2aef2773f0bb8c3937b22520eb8ee345274d00c144"}

注意access_token是放在URL里面code放body里面
返回的数据里面就包含了手机号

{    "errcode":0,    "errmsg":"ok",    "phone_info": {        "phoneNumber":"xxxxxx",        "purePhoneNumber": "xxxxxx",        "countryCode": 86,        "watermark": {            "timestamp": 1637744274,            "appid": "xxxx"        }    }}

然后后端获取到手机之后,可以顺便把其他业务逻辑处理了,比如登录

一句话总结

前端把getPhoneNumber获取到的code传给后端,后端获取access_token和前端传过来的code,请求getPhoneNumber服务端接口,即可获取到手机号。

❤如果觉得有用的话,请给我个三连


点击全文阅读


本文链接:http://zhangshiyu.com/post/53856.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 完结文我在恐怖游戏开裁缝铺列表_完结文我在恐怖游戏开裁缝铺(林慕秋)
  • 全书免费谢清禾姜博诚_谢清禾姜博诚全书免费
  • 离婚后我收获真爱,前妻却快死了(秦落音陆轩),离婚后我收获真爱,前妻却快死了
  • 老公把上亿豪宅送养妹后,我把人和房都拆了(顾思思顾言洲)全书免费_(顾思思顾言洲)老公把上亿豪宅送养妹后,我把人和房都拆了后续(顾思思顾言洲)
  • 沈星悦傅时安_沈星悦傅时安
  • 离婚后,居然还能以旧换新?(陈汉李淼淼李思)全书浏览_离婚后,居然还能以旧换新?全书浏览
  • 完结文给女团主播狂刷百万反被骂穷逼,我反手送她队友出道列表_完结文给女团主播狂刷百万反被骂穷逼,我反手送她队友出道(秦薇)
  • 全书浏览老公将我第十个孩子送给情人后,我果断改嫁他绝嗣干爹(苏云遮盛炽)_老公将我第十个孩子送给情人后,我果断改嫁他绝嗣干爹(苏云遮盛炽)全书结局
  • 全文无边怨恨是她活下来的最大动力(江寒静顾榕赫)列表_全文无边怨恨是她活下来的最大动力
  • 全文爸爸死后,消失二十年的妈妈带着儿子回来跟我争家产(顾霆锋顾青卿)列表_全文爸爸死后,消失二十年的妈妈带着儿子回来跟我争家产
  • 霍晚清赵旭然_霍晚清赵旭然
  • 弟弟看的破茧时光沉淀后的深情相拥林悦苏然全书在线

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1