微信小程序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 相关文章推荐
爆炸式的JS圆形浮动菜单特效代码
Mar 03 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
Jul 26 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
Dec 23 Javascript
JavaScript中setMonth()方法的使用详解
Jun 11 Javascript
Vue监听数据对象变化源码
Mar 09 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
JS获取子、父、兄节点方法小结
Aug 14 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
Sep 18 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
Sep 12 Javascript
JavaScript解析及序列化JSON的方法实例分析
Jan 04 Javascript
Vue中computed、methods与watch的区别总结
Apr 10 Javascript
uniapp微信小程序实现一个页面多个倒计时
Nov 01 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
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
讲解Python中运算符使用时的优先级
2015/05/14 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
python使用tkinter实现简单计算器
2018/01/30 Python
PyQT实现多窗口切换
2018/04/20 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
大学生的四年学习自我评价
2013/12/13 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
运动会广播稿20字
2015/08/19 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android