微信小程序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 操作单选框,复选框,下拉列表实现代码
Oct 27 Javascript
document.getElementById为空或不是对象的解决方法
Jan 24 Javascript
javascript对数组的常用操作代码 数组方法总汇
Jan 27 Javascript
JS 删除字符串最后一个字符的实现代码
Feb 20 Javascript
jQuery操作表单常用控件方法小结
Mar 23 Javascript
js中for in语句的用法讲解
Apr 24 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 Javascript
jquery 仿锚点跳转到页面指定位置的实例
Feb 14 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
Sep 19 Javascript
vue的常用组件操作方法应用分析
Apr 13 Javascript
JavaScript大数相加相乘的实现方法实例
Oct 18 Javascript
小程序实现筛子抽奖
May 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 文件扩展名 获取函数
2009/06/03 PHP
Yii分页用法实例详解
2014/12/04 PHP
php生成zip文件类实例
2015/04/07 PHP
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
Python中文编码那些事
2014/06/25 Python
浅谈Python中的闭包
2015/07/08 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
python实现tail -f 功能
2020/01/17 Python
python Shapely使用指南详解
2020/02/18 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
宝信软件JAVA工程师面试经历
2012/08/19 面试题
自荐书封面下载
2013/11/29 职场文书
网站开发实习生的自我评价
2013/12/11 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
小学优秀学生评语
2014/12/29 职场文书
受资助学生感谢信
2015/01/21 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
商超业务员岗位职责
2015/02/13 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
火烧圆明园观后感
2015/06/03 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
Python pandas之求和运算和非空值个数统计
2021/08/07 Python