微信小程序> 小程序获取用户手机号登录

小程序获取用户手机号登录

浏览量:1195 时间: 来源:是狮子呀_

2018年9月27日星期四
小程序获取用户手机号登录

使用方法

需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合 session_key 以及 app_id 进行解密获取手机号。

button open-type=“getPhoneNumber” bindgetphonenumber=“getPhoneNumber”

注意:获取微信用户绑定的手机号,需先调用login接口

 在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免login 刷新登录态。

通过bindgetphonenumber绑定的事件来获取回调。回调的参数有三个,
errMsg:用户点击取消或授权的信息回调。
iv:加密算法的初始向量(如果用户没有同意授权则为undefined)。
encryptedData: 用户信息的加密数据(如果用户没有同意授权同样返回undefined)

小程序
encryptedData 解密后为以下 json 结构
小程序
//app.js

App({    onLaunch: function () {    // 登录    wx.login({    success: function (res) {    var code = res.code;    wx.request({    url: 'https://*****.com',    method: 'POST',    data: {    js_code: code    }, //传递后台code值     header: {    'Accept': "*/*"    },    success: function (res) {    var wechat = {     openid: res.data.openid,    thirdkey: res.data.session_key    }    wx.setStorage({  //返回openid session_key  本地缓存    key: 'wechat',    data: wechat    })    }    })    },    fail: function (res) {    console.log("登陆失败")    }    })    }})

// login.js

getPhoneNumber: function (e) {    var that = this;    // 拒绝授权    if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {    wx.showModal({    title: '提示',    showCancel: false,    content: '未授权您将无法登陆',    success: function (res) { }    })    } else {    // 接受授权    wx.getStorage({    key: 'wechat',    success: function (res) {    var openid = res.data.openid;//openid    var thirdkey = res.data.thirdkey;//session_key    wx.request({    url: 'https://www.*****.com',    method: 'POST',    data: {    encryptedData: e.detail.encryptedData,    iv: e.detail.iv,    openid: openid,    thirdkey: thirdkey    },    header: {'Accept': "*/*"},    success: function (res) {    console.log("提交到服务器成功了~~~~手机号登录")    console.log(res.data)    },    fail: function (res) {    console.log("提交到服务器失败了")    }    })//end of wx.request    }    })    }}

版权声明

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

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

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