Browse Source

修改微信登录不获取用户信息/车牌号校验加入新能源车

zaijin 2 năm trước cách đây
mục cha
commit
604642e254

+ 2 - 1
common/apiurl.js

@@ -17,13 +17,14 @@ export const apiurl = {
   phoneLoginAuthUrl: '/client/auth/verifyCode',
   // code换取微信信息
   getWXInfoUrl: '/client/wechat/h5/code/',
+  // code换取微信信息(不包括用户名和头像)
+  getWxOpenidUrl: '/client/wechat/h5/code/noUser/',
   // 微信支付 在pay.js中使用
   wxPayUrl: '/client/wechat/pay',
   // 客户端首页
   getIndexDataUrl: '/client/index',
   //获取路段信息
   roadInfoById: '/client/roadinfo/selectById/',
-
   // 用户车辆
   mycarsUrl: '/client/membervehicle',
   // 设置为默认车辆

+ 3 - 0
common/http.api.js

@@ -27,6 +27,8 @@ const install = (Vue, vm) => {
 
   let getWXInfo = (params = {}) => vm.$u.get(apiurl.getWXInfoUrl + params);
 
+	let getWxOpenidApi = (params = {}) => vm.$u.get(apiurl.getWxOpenidUrl + params.code);
+	
   let wxPay = (params = {}) => vm.$u.post(apiurl.wxPayUrl, params);
 
   let getIndexData = (params = {}) => vm.$u.post(apiurl.getIndexDataUrl, params);
@@ -136,6 +138,7 @@ const install = (Vue, vm) => {
     getPhoneLoginCode,
     phoneLoginAuth,
     getWXInfo,
+    getWxOpenidApi,
     wxPay,
     getIndexData,
     getMycars,

+ 4 - 2
pages/VehicleInquiry/VehicleInquiry.vue

@@ -39,7 +39,7 @@
 </template>
 
 <script>
-import { base64Encrypt } from '@/utils'
+import { base64Encrypt } from '@/utils';
 export default {
   data() {
     return {
@@ -175,7 +175,9 @@ export default {
      */
     async submitVehicleInquiry() {
       const { vehicleNo } = this.form;
-      if (this.$u.test.carNo(vehicleNo)) {
+      const reg =
+        /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[a-zA-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})$/;
+      if (reg.test(vehicleNo)) {
         this.loading = true;
         try {
           const { code } = await this.$u.api.getOrderInfoByParknoApi({ ...this.form });

+ 3 - 1
pages/center/coupon/myCoupon/myCoupon.vue

@@ -203,7 +203,9 @@ export default {
      */
     async exchangeCoupon() {
       const { vehicleNo } = this.form;
-      if (this.$u.test.carNo(vehicleNo)) {
+      const reg =
+        /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[a-zA-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})$/;
+      if (reg.test(vehicleNo)) {
         try {
           this.bindVehiclePop.loading = true;
           const { code } = await this.$u.api.exchangeCouponApi({ ...this.form });

+ 3 - 1
pages/myCars/myCars.vue

@@ -169,7 +169,9 @@ export default {
     // 添加车辆
     async handleAddCar() {
       const { newPlateNumber, vehicleColor } = this;
-      if (!this.$u.test.carNo(newPlateNumber)) {
+      const reg =
+        /^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[a-zA-Z](([DF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[DF]))|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})$/;
+      if (!reg.test(newPlateNumber)) {
         this.showToast('请正确填写车牌号', 'warning');
         return;
       }

+ 33 - 3
pages/wechatLogin/wechatLogin.vue

@@ -43,17 +43,20 @@ export default {
         if (code === wechatLoginKey.code) {
           this.getUserInfo(wechatLoginKey.openId);
         } else {
-          this.handleGetWXInfo(this.code);
+          // this.handleGetWXInfo(this.code);
+          this.handleGetWxOpenId(this.code);
         }
       } else {
-        this.handleGetWXInfo(this.code);
+        // this.handleGetWXInfo(this.code);
+        this.handleGetWxOpenId(this.code);
       }
     } else {
+      // scope (snsapi_userinfo 获取用户基本信息  snsapi_base 只获取OpenId)
       location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?
 					appid=${this.config.wxAppid}&
 					redirect_uri=${encodeURIComponent(local)}&
 					response_type=code&
-					scope=snsapi_userinfo&
+					scope=snsapi_base&
 					state=STATE#wechat_redirect`;
     }
   },
@@ -81,6 +84,33 @@ export default {
           uni.hideLoading();
         });
     },
+    /**
+     * @description: 通过code获取OpenId
+     * @param {*} code
+     * @return {*}
+     */
+    handleGetWxOpenId(code) {
+      this.$u.api
+        .getWxOpenidApi({ code })
+        .then((res) => {
+          if (res.code === 200) {
+            this.$u.vuex('vuex_wxinfo', res.data);
+            localStorage.setItem(
+              'wechatLoginKey',
+              JSON.stringify({
+                code,
+                openId: res.data.openId
+              })
+            );
+            this.getUserInfo(res.data.openId);
+          } else {
+            uni.hideLoading();
+          }
+        })
+        .catch((err) => {
+          uni.hideLoading();
+        });
+    },
     /**
      * 通过openId获取token
      * @param {Object} openId