微信小程序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 相关文章推荐
javascript下阻止表单重复提交、防刷新、防后退
Aug 17 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
Jun 27 Javascript
js delete 用法(删除对象属性及变量)
Aug 24 Javascript
javascript解决IE6下hover问题的方法
Jul 28 Javascript
javascript引用类型之时间Date和数组Array
Aug 27 Javascript
详解JavaScript的回调函数
Nov 20 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
Apr 15 Javascript
老生常谈onBlur事件与onfocus事件(js)
Jul 09 Javascript
angularjs实现文字上下无缝滚动特效代码
Sep 04 Javascript
微信小程序左右滑动的实现代码
Dec 15 Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 Javascript
vue.js封装switch开关组件的操作
Oct 26 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 for 循环使用的简单实例
2016/06/02 PHP
php四种定界符详解
2017/02/16 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
[42:25]EG vs Spirit Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
低版本中Python除法运算小技巧
2015/04/05 Python
Python函数中不定长参数的写法
2019/02/13 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
Vision Directa智利眼镜网:框架眼镜、隐形眼镜和名牌太阳眼镜
2016/11/23 全球购物
五一服装活动方案
2014/01/11 职场文书
关于是否需要写商业计划书
2014/02/07 职场文书
10的分与合教学反思
2014/04/30 职场文书
群教个人对照检查材料
2014/08/20 职场文书
英语演讲开场白
2015/05/29 职场文书
公司年会主持词范文!
2019/05/07 职场文书
2019个人工作总结
2019/06/21 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书