微信小程序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中数组的sort()方法的使用介绍
Dec 18 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
May 12 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
Nov 02 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
Dec 14 Javascript
JavaScript驾驭网页-CSS与DOM
Mar 24 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
May 03 Javascript
jQuery绑定事件-多种实现方式总结
May 09 Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
Dec 07 Javascript
JS使用栈判断给定字符串是否是回文算法示例
Mar 04 Javascript
jquery实现烟花效果(面向对象)
Mar 10 jQuery
JS常见错误(Error)及处理方案详解
Jul 02 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之第十天
2006/10/09 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
Vue Spa切换页面时更改标题的实例代码
2017/07/15 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
js实现日历
2020/11/07 Javascript
Python with的用法
2014/08/22 Python
深入学习Python中的装饰器使用
2016/06/20 Python
python之Socket网络编程详解
2016/09/29 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
python函数超时自动退出的实操方法
2020/12/28 Python
python 如何在测试中使用 Mock
2021/03/01 Python
纯CSS3实现扇形动画菜单(简化版)实例源码
2017/01/17 HTML / CSS
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
学生会干部自荐信
2014/02/04 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
个人优缺点总结
2015/02/28 职场文书
考试没考好检讨书
2015/05/06 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python
vue2实现provide inject传递响应式
2021/05/21 Vue.js
关于Python中*args和**kwargs的深入理解
2021/08/07 Python
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle