小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写。

1.getPhoneNumber这个组件通过button来实现(别的标签无效)。将button中的open-type=“getPhoneNumber”,并且绑定bindgetphonenumber事件获取回调。

<button open-type="getPhoneNumber"  bindgetphonenumber="getPhoneNumber"> 获取手机号码</button> 这个组件之前必须先调用login接口,如果没有调用login点击button时会提示先调用login。

2.html:

 wx.login({success: function (res) {//   console.log(res);if (res.code) {//发起网络请求wx.request({url: ''data: {code: res.code},success: function (response) {console.log(response);var openId = response.data.openid;var session_key = response.data.session_key;var app = getApp();                    app.globalData.openid = openId;app.globalData.session_key = session_key;typeof cb == "function" && cb()}})} else {console.log('获取用户登录态失败!' + res.errMsg)}}});

3.通过bindgetphonenumber绑定的事件来获取回调。回调的参数有三个,

errMsg:用户点击取消或授权的信息回调。

iv:加密算法的初始向量(如果用户没有同意授权则为undefined)。

encryptedData: 用户信息的加密数据(如果用户没有同意授权同样返回undefined)

getPhoneNumber: function(e) {   var that=this;var session_key=app.globalData.session_key;if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {wx.showModal({title: '提示',showCancel: false,content: '未授权',success: function (res) { }})} else {wx.checkSession({success: function () {console.log(1);wx.request({url: 'https://m.xianmaogame.com/sd_idiom/xcx/getPhoneNumber/demo.php',data: {encryptedData:e.detail.encryptedData,iv:e.detail.iv,sessionKey:session_key},method: 'GET',success: function (res) {console.log('获取手机号码成功');console.log(res);}})},fail: function () {console.log(2);wx.login({success: function (res) {if (res.code) {//发起网络请求wx.request({url: ''data: {code: res.code},success: function (response) {var openId = response.data.openid;var session_key = response.data.session_key  wx.request({url: '',data: {encryptedData: e.detail.encryptedData,iv: e.detail.iv,sessionKey: session_key},method: 'GET',success: function (res) {console.log('获取手机号码成功');console.log(res);}})}})} else {console.log('获取用户登录态失败!' + res.errMsg)}}});      }})}} 

4.最后我们需要根据自己的业务逻辑来进行处理,如果用户不同意授权的话可能我们会有一个让他手动输入的界面,如果不是强制获取手机号的话可以直接跳转页面进行下一步。(用户不同意授权errMsg返回‘getPhoneNumber:fail user deny’)
5.用户同意授权,我们可以根据login时获取到的code来通过后台以及微信处理拿到session_key,最后通过app_id,session_key,iv,encryptedData(用户同意授权errMsg返回‘getPhoneNumber:ok’)

6.解密的方法可以去微信官方开发文档查看,有很详细说明。
原文:https://blog.csdn.net/weixin_38984353/article/details/80484951

获取微信绑定的手机号相关推荐

  1. 微信小程序获取微信绑定授权手机号getPhoneNumber 全流程及出现手机号带*号问题详解

    微信小程序文档中给出如下示例 获取微信用户绑定的手机号,需先调用login接口. 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的 ...

  2. 微信小程序中,如何获取微信绑定的手机号

    获取手机号 获取微信用户绑定的手机号,需先调用wx.login接口. 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发. 注意:目前该接 ...

  3. 微信小程序获取微信绑定授权手机号

    方法: 1.使用<button>组件,并将该组件的open-type的属性值设置为getPhoneNumber,绑定bindgetphonenumber事件 2.当用户点击允许时,可以通过 ...

  4. 小程序获取微信绑定的手机号

    注意:因为此功能只能由用户主动触发,所以只能使用button组件 1.首先调用wx.login接口. 2.页面引入 <button block open-type="getPhoneN ...

  5. php intval获取手机号,微信小程序获取微信绑定授权手机号getPhoneNumber

    继前面登录之后,有做手机号码授权.获取用户手机号码. 注意: 微信文档所示 在回调中调用 wx.login 登录,可能会刷新登录态.此时服务器使用 code 换取的 sessionKey 不是加密时使 ...

  6. 微信小程序获取微信绑定授权手机号getPhoneNumber

    继前面登录之后,有做手机号码授权.获取用户手机号码. 注意: 微信文档所示 在回调中调用 wx.login 登录,可能会刷新登录态.此时服务器使用 code 换取的 sessionKey 不是加密时使 ...

  7. 微信小程序开发之—获取用户微信绑定的手机号

    获取用户微信绑定的手机号需要使用button的"open-type='getPhoneNumber'",在获取之前需要检测(checkSession)是否登录. wxml: < ...

  8. uniapp微信小程序授权登录和获取微信绑定的手机号码

    uniapp微信小程序授权登录和获取微信绑定的手机号码 弹出授权的弹框 <view class="weixinOk" @tap="getUserProfile&qu ...

  9. 解决在uniapp项目中小程序调用获取微信绑定手机号

    第一步:获取微信登录中的code onLoad() {const self = thisuni.login({provider: 'weixin',success: loginRes => {c ...

最新文章

  1. 鸿蒙os操作系统合作伙伴,华为公布三大鸿蒙OS系统 已有大量合作伙伴进行开发...
  2. zip/unzip 命令
  3. C语言程序设计50例(三)(经典收藏)
  4. 织梦dedecms默认网站地图sitemap.html优化
  5. @scheduled注解配置时间_Spring Boot中使用@Scheduled创建定时任务
  6. 搭建数字图像处理开发环境(Python+pycharm+opencv)
  7. django2.0 自己入门记录一些基础url 模板等
  8. JS 实现 DIV 遍历并随机替换DIV内容
  9. 程序员不会测试引起版本事故小结
  10. 【转】用java将pdf转换成jpg图片的代码
  11. Origin如何绘出带有时间轴的趋势图
  12. python header是啥_Python爬虫之Header
  13. css实现加载旋转动画
  14. 生活记录:其实超度的是活着的人
  15. Android仿keep运动轨迹动画,仿keep思路
  16. 镜像翻转_【资讯】装动镜世界版假面骑士时王登场,镜像翻转也算新规?
  17. 如何读取蓝牙linkkeys值
  18. Linux_操作系统-基础操作-教学
  19. 7-1 ATM机类结构设计(二) (100 分)
  20. 我的世界自制mod{0}

热门文章

  1. 【项目】C++ MiniFtpd项目手册 笔记版
  2. 敬伟PS教程:掌握篇B08滤镜系列
  3. 大学生用 AI 写论文:次次拿 A,还赚 100 美元;小米集团副总裁崔宝秋离职;抖音上线桌面端聊天软件|极客头条
  4. 欧拉函数的Möbius反演公式证明中换序求和一些想法
  5. 采用头插插法和尾插法建立单项链表
  6. linux 测试cpu计算圆周率_Linux系统下的CPU、内存、IO、网络的压力测试
  7. JSON序列化导致Long类型被搞成Integer经典巨坑
  8. Oracle 给某列前后添加后缀或者前缀
  9. 如果我能天天24小时不睡觉那该多好?
  10. 如何入行Python爬虫工程师