这两天实验室需要紧急开发采购微信小程序,虽然我不会,但是看过一点教程就上车了。
今天实现小程序登录与电话获取,流程如下:首先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) { } }) } },