方法:

1、使用<button>组件,并将该组件的open-type的属性值设置为getPhoneNumber,绑定bindgetphonenumber事件
2、当用户点击允许时,可以通过绑定事件的回调获取到微信服务返回的加密数据
3、调用login接口,获取到用户的code
4、将获取手机号事件返回的加密数据结合sessionkey、appid以及login接口返回的code传给后端提供的接口进行解密获取手机号。

示例:

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> </button>
Page({ getPhoneNumber: function(e) { console.log(e.detail.errMsg) console.log(e.detail.iv) console.log(e.detail.encryptedData) }
})

返回参数说明:

encryptedData(String):包括敏感数据在内的完整用户信息的加密数据
iv(String):加密算法的初始向量
errMsg(String):信息

敏感数据的获取大多都是将以上返回的除errMsg之外参数以及code传给后端提供的接口,由后端进行解密后返回解密后的数据,获取到的解密数据如下:

{"code":200,"phoneNumber": "xxxxx",  "purePhoneNumber": "xxxxx", "countryCode": "86","msg": "请求成功","time": "1590486884","watermark":{"appid":"APPID","timestamp":"1590486884"}
}

具体示例:

getPhoneNumber: function (e) {console.log(e.detail.iv);console.log(e.detail.encryptedData);wx.login({success: res => {console.log(res.code);if(res.code){wx.request({url: '解密地址',data: {'encryptedData': encodeURIComponent(e.detail.encryptedData),'iv': e.detail.iv,'code': res.code},method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECTheader: {'content-type':'application/json'}, // 设置请求的 headersuccess: function (res) {if (res.status == 200 ) {//我后台设置的返回值为200时为成功//do something}},fail: function (err) {//do something}})}}})
}

在用户允许获取手机号之后,有时还会调用checkSession接口来判断用户是否是在登录状态下允许获取手机号。

微信小程序获取微信绑定授权手机号相关推荐

  1. 微信小程序 error 用户绑定的手机号需要验证,请在客户端完成短信

    微信小程序 error 用户绑定的手机号需要验证,请在客户端完成短信 第一步在电脑上点编译 第二步点击预览 再点击自动预览 第三步打开手机上的小程序确认授权 输入短信验证码 之后就可以运行了 我点二维 ...

  2. 微信小程序-获取微信收货地址

    微信小程序获取微信收货地址 文章目录 微信小程序获取微信收货地址 一.在小程序管理后台( 小程序管理后台),「开发」-「开发管理」-「接口设置」中自助开通该接口权限. 二.开通之后直接调用接口. // ...

  3. 微信小程序获取微信公众号文章2

    微信小程序获取微信公众号文章2 前面介绍了一篇微信小程序打开微信公众号中的文章实战教程,主要介绍了实现的具体原理,但是实际去做的时候,发现了更多的坑,所以这里再补充一下. 原先的思路是不完整的 原先我 ...

  4. 微信小程序获取微信头像、微信昵称

    微信小程序获取头像昵称 <template><view class="top-user"><view class="top-content& ...

  5. 微信小程序获取微信运动数据并解密

    官方API 官方API 步骤 1,APP端拉起微信小程序 2,小程序端获取微信运动数据 3,后台解密获取的微信运动数据 实现 1,APP端调起微信小程序 准备工作: 1)微信开放平台,微信公众平台注册 ...

  6. uniapp 微信小程序获取用户信息、手机号

    <template><!-- #ifdef MP-WEIXIN --><view><view><button type="primary ...

  7. 微信小程序获取用户绑定手机号码完整版(转载)

    一.准备阶段 创建小程序项目(测试号即可) 创建Java后台项目(此处为SpringBoot 普通项目) 二.前端代码 WXML 代码 <!--index.wxml--> <view ...

  8. 小程序步数解密php,微信小程序--获取微信运动步数的实例代码

    如今运动计步很火,不管是蚂蚁森林,仍是微信上都很火爆,本文介绍了微信小程序微信运动步数的实例代码,分享给你们php 思路:wx.login获取的code请求获取的session_key,wx.getW ...

  9. php 小程序 运动步数_微信小程序获取微信运动步数的实例代码

    现在运动计步很火,无论是蚂蚁森林,还是微信上都很火爆,本文介绍了微信小程序微信运动步数的实例代码,分享给大家 微信小程序API-微信运动 https://mp.weixin.qq.com/debug/ ...

  10. 微信小程序获取微信名和头像登录

    小程序获取用户信息使用 wx.getUserProfile()方法 wx.getUserProfile()方法的用处:获取用户信息,页面上有点击事件button后才可以调用,每次请求都会弹出授权窗口, ...

最新文章

  1. Arduino 各种模块篇 光敏感应器 简易光敏
  2. try-with-resources语句
  3. 《系统集成项目管理工程师》必背100个知识点-65采购合同的支付方式
  4. java面试题二十一 异常
  5. Golang并发模型:合理退出并发协程
  6. require.jsAMD模块化编程
  7. CSS flex 盒子在 Chrome 和 Safari 中的行为差异
  8. MySQL数据库专家分享资深DBA经验
  9. 计算机科学与技术素材,计算机科学与技术ppt素材
  10. 解决多个py模块调用同一个python的logging模块,打印日志冲突问题
  11. 教你摆脱低级程序猿 项目中cocopads的安装使用
  12. MATLAB中定积分的求解
  13. WIN10下速腾聚创RS-Ruby lite80线激光雷达ip地址和端口号port修改
  14. 一招解决网页文字无法复制
  15. 正文页眉:奇数页为各章题目,偶数页为论文题目
  16. 【信息汇总】浙江大学计算机考研
  17. idea中摸鱼插件_上班防摸鱼插件(知乎页面)
  18. FastDFS文件同步机制分析
  19. 激发波长近红外二区发光量子点,近红外二区(NIR-II)发射波长(1000-1700 nm)
  20. ubuntu系统查询硬盘的品牌、型号、序列号

热门文章

  1. 使用纸壳CMS创建多语言网站
  2. DeepTraLog: Trace-Log Combined Microservice AnomalyDetection through Graph-based Deep Learning
  3. logo免费在线设计,给自己的logo寻找灵感
  4. Android 音乐播放器
  5. 陪诊系统app开发,一个应用可切换不同身份
  6. 英爱特快速制表软件详细介绍
  7. 【线程池封装】实现简单回射服务器
  8. 杜克大学陈怡然教授转载一篇谈ChatGPT为何无法出现在中国的文章,一针见血
  9. 深度分享Windows11系统全新4K高清壁纸
  10. hadoop不生成tmp解决办法