微信小程序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 相关文章推荐
基于jquery扩展漂亮的CheckBox(自己编写)
Nov 19 Javascript
JS小功能(button选择颜色)简单实例
Nov 29 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
Jul 23 Javascript
JavaScript内存管理介绍
Mar 13 Javascript
javascript属性访问表达式用法分析
Apr 25 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
Dec 04 Javascript
深入浅析JavaScript中的作用域和上下文
Mar 26 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
基于vue 实现token验证的实例代码
Dec 14 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
Sep 25 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
Jun 19 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 include加载文件两种方式效率比较
2010/08/08 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
2011/01/07 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
python实现挑选出来100以内的质数
2015/03/24 Python
Python 的内置字符串方法小结
2016/03/15 Python
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
python构建自定义回调函数详解
2017/06/20 Python
python函数中return后的语句一定不会执行吗?
2017/07/06 Python
Python网络编程详解
2017/10/31 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
Champion官网:美国冠军运动服装
2017/01/25 全球购物
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
外语专业毕业生自荐信
2014/04/14 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
校运动会广播稿(100篇)
2014/09/12 职场文书
法人身份证明书
2014/10/08 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
实习单位意见
2015/06/04 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
导游词之任弼时故居
2020/01/07 职场文书
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android