当前位置: 首页 > news >正文

佛山住房和城乡建设部网站官网淄博网站建设培训

佛山住房和城乡建设部网站官网,淄博网站建设培训,汕头哪里学网站建设最好,国外网站打不开怎么解决前言 小程序中有很多地方都会用到用户的手机号,比如登陆注册,填写收货地址等等。有了这个组件可以快速获取微信绑定手机号码,无须用户填写。网上大多数教程还是往年的,而微信官方的api已做了修改。本篇文章将使用最新的方法获取手…

前言

  • 小程序中有很多地方都会用到用户的手机号,比如登陆注册,填写收货地址等等。有了这个组件可以快速获取微信绑定手机号码,无须用户填写
  • 网上大多数教程还是往年的,而微信官方的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://www.yayakq.cn/news/441464/

相关文章:

  • 宝塔面板建设二级域名网站访问不了网站后台这么做视频教程
  • 网站推广策划思路是什么建立网站容量
  • 做网站多久学会卖水果网站模板
  • 食品网站开发的背景个人做商城网站大概多少钱
  • 多语言企业网站开发徐汇网站开发培训
  • 手机端做的优秀的网站设计wordpress导入微信
  • 福建省港航建设发展有限公司网站扁平化网站配色
  • 重庆专业网站建设公司排名中国建筑室内设计师网
  • 公司没有备案了网站张家界网站建设多少钱
  • 深圳网站建设公司收费标准建筑工人找活的平台app
  • vancl网站驾校网站建设
  • 做外贸必须建网站吗出词
  • 有人做网赌网站吗环保网站怎么做
  • 做骗子网站织梦cms收费
  • 和京东一样做电子产品的网站企业官网下载
  • 怎么用ps做简单网站首页网站设计广州量计价格
  • 建设工程教育网视频网站自助健站
  • 接网站建设 网站设计广东南方建设工程有限公司网站
  • 天河区pc端网站建设免费网站分析seo报告是坑吗
  • 网站怎么php做微信登录做网站注册的商标类别
  • 学做古装网站苏州专业网站制作方案
  • 备案用网站建设方案wordpress浏览器主题下载
  • 计算机专业论文 网站建设有什么网站开发客户
  • id97网站怎么做的成都创新互联做网站
  • 企业网站开发是什么淘客做网站的话虚拟主机多大
  • php网站开发实例教程源码wordpress 存储插件
  • 那里有专门做印刷品的网站wordpress怎么调用简码
  • 做二手网站好的名字网站建设费会计账务处理
  • 网站设计制作新参考价格自己在家搭建服务器
  • 网站用户 分析网站设计有哪些语言版本