<>微信小程序获取手机号登录流程

首先前端使用wx.login 获取code
wx.login({ success(res) { if (res.code) { that.setData({ code: res.code }); }
}, fail(res) { console.log('获取凭证失败!' + res); } })
在wxml文件里面的加上按钮,通过按钮触发getPhoneNumber方法,button的open-type="getPhoneNumber"加上
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">
在getPhoneNumber(e)函数里面
前端调取后端给的接口把code传过去,后端使用 code 换取 openid、unionid、session_key 等信息;
request.request('jscode2session', { code: this.data.code }, res => { if
(res.status == 1) { that.setData({ session_key:
encodeURIComponent(res.data.session_key) }); } })

记住:发送请求时前端传参如果用encodeURIComponent()转码,后端也一定要用转码,前端如果不用后端也不用,一定要前后端保持一致,不然后端拿到之后请求微信接口会报错!!!

然后通过getPhoneNumber(e)函数的e这个对象里面获取iv和encryptedData;
var iv = encodeURIComponent(e.detail.iv) var encryptedData =
encodeURIComponent(e.detail.encryptedData);

因为第一次wx.login()拿到的code为了获取session_key已经使用过了,所以后端获取手机号所需的code需要再次通过wx.login()获取一下;
至此后端通过微信获取手机号所需要的四个参数都已经凑齐wx_code、session_key、encryptedData、iv;
wx.login({ success(res) { if (res.code) { // 成功回调获取用户解密手机号
request.request('login', { wx_code: res.code, session_key:
that.data.session_key, encryptedData: encryptedData, iv: iv }, res => {
console.log('打印后端返回的值') }, fail => {}) } } })
至此微信小程序获取手机号前后端交互完成!!!

技术
今日推荐
PPT
阅读数 126
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信