这两天实验室需要紧急开发采购微信小程序,虽然我不会,但是看过一点教程就上车了。
今天实现小程序登录与电话获取,流程如下:首先wx.login(获取到code) --> 通过auth.code2Session接入参code等属性(获取openid等,一般在服务器端调用确保安全,但是前端也可以直接调用) -->使用button的open-type属性赋值“getPhoneNumber”来获取电话(加密的) -->传给后台进行解密(微信提供了解密demo)
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button>
// 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId if (res.code) { //发起网络请求 console.log(res) var code = res.code wx.request({ url:'https://api.weixin.qq.com/sns/jscode2session?appid=*****&secret=*****&js_code='+code+'&grant_type=authorization_code', // method: "post", success (res) { console.log(res); // that.setData(res.data); } }) } else { console.log('获取用户登录态失败!' + res.errMsg) } } }) // 获取用户信息 wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 wx.getUserInfo({ success: res => { // } } }) } } }) //获取电话 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) { } }) } },