微信小程序> 微信小程序获取手机号码详解-微信小程序调起手机短信-微信小程序短信验证

微信小程序获取手机号码详解-微信小程序调起手机短信-微信小程序短信验证

浏览量:1299 时间: 来源:执波仔丶
小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,

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

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

buttonopen-type"getPhoneNumber"bindgetphonenumber"getPhoneNumber"获取手机号码/button这个组件之前必须先调用login接口,如果没有调用login点击button时会提示先调用login。

[html]viewplaincopywx.login({success:function(res){//console.log(res);if(res.code){//发起网络请求wx.request({url:''data:{code:res.code},success:function(response){console.log(response);varopenIdresponse.data.openid;varsession_keyresponse.data.session_key;varappgetApp();app.globalData.openidopenId;app.globalData.session_keysession_key;typeofcb"function"cb()}})}else{console.log('获取用户登录态失败!'+res.errMsg)}}});

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

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

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

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

[html]viewplaincopygetPhoneNumber:function(e){varthatthis;varsession_keyapp.globalData.session_key;if(e.detail.errMsg'getPhoneNumber:failuserdeny'){wx.showModal({title:'提示',showCancel:false,content:'未授权',success:function(res){}})}else{wx.checkSession({success:function(){console.log(1);wx.request({url:'https://m.xianmaogame.com/sd_idiom/xcx/getPhoneNumber/demo.php',data:{encryptedData:e.detail.encryptedData,iv:e.detail.iv,sessionKey:session_key},method:'GET',success:function(res){console.log('获取手机号码成功');console.log(res);}})},fail:function(){console.log(2);wx.login({success:function(res){if(res.code){//发起网络请求wx.request({url:''data:{code:res.code},success:function(response){varopenIdresponse.data.openid;varsession_keyresponse.data.session_keywx.request({url:'',data:{encryptedData:e.detail.encryptedData,iv:e.detail.iv,sessionKey:session_key},method:'GET',success:function(res){console.log('获取手机号码成功');console.log(res);}})}})}else{console.log('获取用户登录态失败!'+res.errMsg)}}});}})}}4.最后我们需要根据自己的业务逻辑来进行处理,如果用户不同意授权的话可能我们会有一个让他手动输入的界面,如果不是强制获取手机号的话可以直接跳转页面进行下一步。(用户不同意授权errMsg返回‘getPhoneNumber:failuserdeny’)

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

6.解密的方法可以去微信官方开发文档查看,有很详细说明。加密数据解密算法(官方文档)

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎