微信小程序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 相关文章推荐
DOM 中的事件处理介绍
Jan 18 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
Jul 09 Javascript
ie8本地图片上传预览示例代码
Jan 12 Javascript
jquery实现当滑动到一定位置时固定效果
Jun 17 Javascript
node.js中的fs.fchownSync方法使用说明
Dec 16 Javascript
jQuery实现仿百度帖吧头部固定导航效果
Aug 07 Javascript
javascript基础练习之翻转字符串与回文
Feb 20 Javascript
angular 基于ng-messages的表单验证实例
May 04 Javascript
详解vue slot插槽的使用方法
Jun 13 Javascript
vue中实现在外部调用methods的方法(推荐)
Feb 08 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
Aug 25 Javascript
Vue中使用clipboard实现复制功能
Sep 05 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实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
旅游市场营销方案
2014/03/09 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
离婚协议书范文
2015/01/26 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
Python使用DFA算法过滤内容敏感词
2022/04/22 Python