赞
踩
公司项目的流程,不代表大众的写法哦
- data: {
- isGetNumber: true, // 按钮切换
- },
- methods: {
- // 手机号授权
- getPhoneNumber(e) {
- console.log(e);
- this.setData({
- iv: e.detail.iv,
- encryptedData: e.detail.encryptedData
- })
- this.getPhone()
- },
- getPhone: function () {
- let self = this;
- // 小程序自身的解析加密字段的方法,成功即证明存在session_key(登录未失效),直接请求后端接口获取手机号
- wx.checkSession({
- success() {
- self.savePhone();
- },
- fail() {
- // session_key 已经失效,需要重新执行登录流程
- self.getopenid().then(function (res) {
- self.savePhone();
- }) //重新登录
- }
- })
- },
- // 后台接口:为了获取到授权后的手机号,赋值到需要的地方
- savePhone: function () {
- let self = this;
- wx.request({
- method: 'POST',
- url: app.globalData.requestHostYmm + '/ymmopenapi/sgw/v1/wechat/aesdecrypt',
- header: app.globalData.header,
- data: {
- openId: app.globalData.openId, // 这个在登录时赋值全局即可
- secretKey: app.globalData.session_key, 这里在下面获取或者全局有的话赋值获取
- encryptedData: self.data.encryptedData,
- iv: self.data.iv,
- sceneType: 'PhoneNoAuthorization',
- appId: '自己小程序的appid'
- },
- success: function (res) {
- console.log('res.data.phoneNo', res.data.phoneNo);
- if (res.data.phoneNo) {
- wx.setStorageSync('isGetNumber', 'getNumber=' + res.data.phoneNo);
- // 赋值手机号
- self.setData({
- mobile: res.data.phoneNo,
- })
- // 这里是调用任何接口,在手机号授权后的一切操作
- self.quickDocumentSkip()
- }
- }
- })
- },
-
- //获取openoid : 后台接口处理返回对应的session_key
- getopenid() {
- var self = this;
- return new Promise(function (resolve, reject) {
- wx.login({
- success(res) {
- if (res.code) {
- // 发起网络请求
- wx.request({
- url: app.globalData.requestHostYmm + '/ymmopenapi/sgw/v1/third/aid/getOpenId',
- header: app.globalData.header,
- data: {
- appid: app.globalData.appId,
- js_code: res.code,
- param: app.globalData.param,
- platformType: 'MiniProgram'
- },
- success: function (res) {
- app.globalData.session_key = res.data.session_key;
- resolve(res)
- }
- })
- }
- }
- })
-
- })
- },
-
- }

- <view class="footer">
- <view class="sureBtn" bindtap='quickDocumentSkip' wx:if="{{isGetNumber}}">
- 确认
- </view>
- <button class="sureBtn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber" wx:if="{{!isGetNumber}}">确认</button>
- </view>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。