微信小程序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 相关文章推荐
直接生成打开窗口代码,不必下载
May 14 Javascript
基于jquery实现图片广告轮换效果代码
Jul 07 Javascript
js将当前时间格式转换成时间搓(自写)
Sep 26 Javascript
一个CSS+jQuery实现的放大缩小动画效果
Feb 19 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
May 12 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
Dec 04 Javascript
js简单判断flash是否加载完成的方法
Jun 21 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
Oct 28 Javascript
node.js调用Chrome浏览器打开链接地址的方法
May 17 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
Jun 29 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
Apr 21 Javascript
二维码条形码生成的JavaScript脚本库
Jul 07 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 不错的学习资料
2009/02/06 PHP
PHP使用数组实现队列
2012/02/05 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
python访问抓取网页常用命令总结
2017/04/11 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
python 读取修改pcap包的例子
2019/07/23 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
关于多元线性回归分析——Python&amp;SPSS
2020/02/24 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
介绍一下Java中标识符的命名规则
2014/02/03 面试题
团队经理竞聘书
2014/03/31 职场文书
《画》教学反思
2014/04/14 职场文书
学期评语大全
2014/04/30 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
计算机软件专业求职信
2014/06/10 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书