微信小程序getPhoneNumber快速获取用户手机号组件

小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,

      有了这个组件可以快速获取微信绑定手机号码,无须用户填写。


1.getPhoneNumber这个组件通过button来实现(别的标签无效)。将button中的open-type=“getPhoneNumber”,并且绑定bindgetphonenumber事件获取回调。

[html]  view plain  copy
  1. <span style="font-size:14px;"><button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button></span>  

2.在使用这个组件之前必须先调用login接口,如果没有调用login点击button时会提示先调用login。

[html]  view plain  copy
  1. App({  
  2.     onLaunch: function () {  
  3.         wx.login({  
  4.             success: function (res) {  
  5.                 if (res.code) {  
  6.                     //发起网络请求  
  7.                     console.log(res.code)  
  8.                 } else {  
  9.                     console.log('获取用户登录态失败!' + res.errMsg)  
  10.                 }  
  11.             }  
  12.         });  
  13.     }  
  14. })  


3.通过bindgetphonenumber绑定的事件来获取回调。回调的参数有三个,

errMsg:用户点击取消或授权的信息回调。

iv:加密算法的初始向量(如果用户没有同意授权则为undefined)。

encryptedData: 用户信息的加密数据(如果用户没有同意授权同样返回undefined)


[html]  view plain  copy
  1. getPhoneNumber: function(e) {   
  2.     console.log(e.detail.errMsg)   
  3.     console.log(e.detail.iv)   
  4.     console.log(e.detail.encryptedData)   
  5.     if (e.detail.errMsg == 'getPhoneNumber:fail user deny'){  
  6.       wx.showModal({  
  7.           title: '提示',  
  8.           showCancel: false,  
  9.           content: '未授权',  
  10.           success: function (res) { }  
  11.       })  
  12.     } else {  
  13.       wx.showModal({  
  14.           title: '提示',  
  15.           showCancel: false,  
  16.           content: '同意授权',  
  17.           success: function (res) { }  
  18.       })  
  19.     }  
  20.   }  
4.最后我们需要根据自己的业务逻辑来进行处理,如果用户不同意授权的话可能我们会有一个让他手动输入的界面,如果不是强制获取手机号的话可以直接跳转页面进行下一步。(用户不同意授权errMsg返回‘getPhoneNumber:fail user deny’)

5.用户同意授权,我们可以根据login时获取到的code来通过后台以及微信处理拿到session_key,最后通过app_id,session_key,iv,encryptedData(用户同意授权errMsg返回‘getPhoneNumber:ok’)

6.解密的方法可以去微信官方开发文档查看,有很详细说明。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值