微信小程序getPhoneNumber获取用户手机号


Posted in Javascript onSeptember 29, 2017

 微信小程序getPhoneNumber获取用户手机号

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

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

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">

2.在使用这个组件之前必须先调用login接口,如果没有调用login点击button时会提示先调用login。

App({ 
  onLaunch: function () { 
    wx.login({ 
      success: function (res) { 
        if (res.code) { 
          //发起网络请求 
          console.log(res.code) 
        } else { 
          console.log('获取用户登录态失败!' + res.errMsg) 
        } 
      } 
    }); 
  } 
})

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

  • errMsg:用户点击取消或授权的信息回调。
  • iv:加密算法的初始向量(如果用户没有同意授权则为undefined)。
  • encryptedData: 用户信息的加密数据(如果用户没有同意授权同样返回undefined)

微信小程序getPhoneNumber获取用户手机号

getPhoneNumber: function(e) {  
  console.log(e.detail.errMsg)  
  console.log(e.detail.iv)  
  console.log(e.detail.encryptedData)  
  if (e.detail.errMsg == 'getPhoneNumber:fail user deny'){ 
   wx.showModal({ 
     title: '提示', 
     showCancel: false, 
     content: '未授权', 
     success: function (res) { } 
   }) 
  } else { 
   wx.showModal({ 
     title: '提示', 
     showCancel: false, 
     content: '同意授权', 
     success: function (res) { } 
   }) 
  } 
 }

4.最后我们需要根据自己的业务逻辑来进行处理,如果用户不同意授权的话可能我们会有一个让他手动输入的界面,如果不是强制获取手机号的话可以直接跳转页面进行下一步。(用户不同意授权errMsg返回‘getPhoneNumber:fail user deny')

5.用户同意授权,我们可以根据login时获取到的code来通过后台以及微信处理拿到session_key,最后通过app_id,session_key,iv,encryptedData(用户同意授权errMsg返回‘getPhoneNumber:ok')

6.解密的方法可以去微信官方开发文档查看,有很详细说明。

加密数据解密算法(官方文档)

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js trim函数 去空格函数与正则集锦
Nov 20 Javascript
Javascript中自动切换焦点实现代码
Dec 15 Javascript
javascript简单事件处理和with用法介绍
Sep 16 Javascript
学习JavaScript事件流和事件处理程序
Jan 25 Javascript
基于JavaScript实现类似于百度学术高级检索功能
Mar 02 Javascript
Web前端开发之水印、图片验证码
Nov 27 Javascript
Vue-Router实现页面正在加载特效方法示例
Feb 12 Javascript
基于vue的短信验证码倒计时demo
Sep 13 Javascript
JS实现继承的几种常用方式示例
Jun 22 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
Jul 03 Javascript
浅谈JS中this在各个场景下的指向
Aug 14 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 Javascript
微信小程序中setInterval的使用方法
Sep 29 #Javascript
vue生成随机验证码的示例代码
Sep 29 #Javascript
JS设计模式之单例模式(一)
Sep 29 #Javascript
微信小程序的日期选择器的实例详解
Sep 29 #Javascript
JS设计模式之惰性模式(二)
Sep 29 #Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
Aug 09 #Javascript
详解用Node.js实现Restful风格webservice
Sep 29 #Javascript
You might like
php强制下载类型的实现代码
2011/04/21 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
刷新时清空文本框内容的js代码
2007/04/23 Javascript
日期 时间js控件
2009/05/07 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python实现合并字典的方法
2015/07/07 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
python使用mysql数据库示例代码
2017/05/21 Python
python去除字符串中的换行符
2017/10/11 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
Python如何telnet到网络设备
2021/02/18 Python
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
创建学习型党组织实施方案
2014/03/29 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
《从现在开始》教学反思
2016/02/16 职场文书