微信小程序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 相关文章推荐
innerHTML与jquery里的html()区别介绍
Oct 12 Javascript
jquery根据name属性查找的小例子
Nov 21 Javascript
jquery实现弹出层登录和全屏层注册特效
Aug 28 Javascript
详解JavaScript中常用的函数类型
Nov 18 Javascript
前端框架Vue.js构建大型应用浅析
Sep 12 Javascript
Javascript之面向对象--方法
Dec 02 Javascript
100多个基础常用JS函数和语法集合大全
Feb 16 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
Apr 20 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
May 07 Javascript
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 Javascript
layui字体图标 loading图标静止不旋转的解决方法
Sep 23 Javascript
layui 弹出层值回传解决方式
Nov 14 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实现给一张图片加上水印效果
2016/01/02 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
Python解析json文件相关知识学习
2016/03/01 Python
Python的时间模块datetime详解
2017/04/17 Python
Django实现快速分页的方法实例
2017/10/22 Python
python2.7到3.x迁移指南
2018/02/01 Python
python 以16进制打印输出的方法
2018/07/09 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
详解python中的闭包
2020/09/07 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
PHP如何去执行一个SQL语句
2016/03/05 面试题
说出数据连接池的工作机制是什么?
2013/04/19 面试题
白酒市场营销方案
2014/02/25 职场文书
学生保证书
2015/01/16 职场文书
科技活动总结范文
2015/05/11 职场文书
2015年共青团工作总结
2015/05/15 职场文书
趣味运动会简讯
2015/07/20 职场文书
公司员工培训管理制度
2015/08/04 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
求职自我评价参考范文
2019/05/16 职场文书
python实现Nao机器人的单目测距
2021/09/04 Python