Browse Source

增加停车场微信支付

yangzj 2 years ago
parent
commit
89f33e6e12
5 changed files with 645 additions and 605 deletions
  1. 114 114
      common/apiurl.js
  2. 167 160
      common/http.api.js
  3. 1 1
      pages/parkexport/parkexport.vue
  4. 306 273
      pages/paymentMethod/paymentMethod.vue
  5. 57 57
      utils/wxPay.js

+ 114 - 114
common/apiurl.js

@@ -1,120 +1,120 @@
 const apiurl = {
-	//反馈
-	feedbackAddUrl: '/client/articleFeedback/add',
-	// 获取微信用户信息
-	getuseinfourl: '/client/wechat/h5/user',
-	// 公众号支付
-	payurl: '/client/app/pay',
-	// 创建订单
-	createOrderurl: '/client/order/createOrder',
-	// 退款
-	refundurl: '/client/app/order/refund',
-	// 绑定手机号
-	bindphoneurl: '/client/app/order/refund2',
-	// 手机登录验证码
-	phoneLoginCodeUrl: '/client/auth/sendSmsCode',
-	// 手机登录验证码验证
-	phoneLoginAuthUrl: '/client/auth/verifyCode',
-	// code换取微信信息
-	getWXInfoUrl: '/client/wechat/h5/code/',
-	// 微信支付 在pay.js中使用
-	wxPayUrl: '/client/wechat/pay',
-	// 客户端首页
-	getIndexDataUrl: '/client/index',
-	//获取路段信息
-	roadInfoById: '/client/roadinfo/selectById/',
+  //反馈
+  feedbackAddUrl: '/client/articleFeedback/add',
+  // 获取微信用户信息
+  getuseinfourl: '/client/wechat/h5/user',
+  // 公众号支付
+  payurl: '/client/app/pay',
+  // 创建订单
+  createOrderurl: '/client/order/createOrder',
+  // 退款
+  refundurl: '/client/app/order/refund',
+  // 绑定手机号
+  bindphoneurl: '/client/app/order/refund2',
+  // 手机登录验证码
+  phoneLoginCodeUrl: '/client/auth/sendSmsCode',
+  // 手机登录验证码验证
+  phoneLoginAuthUrl: '/client/auth/verifyCode',
+  // code换取微信信息
+  getWXInfoUrl: '/client/wechat/h5/code/',
+  // 微信支付 在pay.js中使用
+  wxPayUrl: '/client/wechat/pay',
+  // 客户端首页
+  getIndexDataUrl: '/client/index',
+  //获取路段信息
+  roadInfoById: '/client/roadinfo/selectById/',
 
-	// 用户车辆
-	mycarsUrl: '/client/membervehicle',
-	// 设置为默认车辆
-	setDefaultCarUrl: '/client/membervehicle/modifyDefault/',
-	//室内停车订单列表
-	getRoomparkingList: '/client/parking-orderinfo/pageList',
-	// 获取订单列表
-	getOrderListUrl: '/client/orderinfo',
-	// 获取支付订单详情
-	getOrderinfoUrl: '/client/orderinfo/paydetail/',
-	// 获取订单详情
-	getOrderDetailUrl: '/client/orderinfo/detail/',
-	getRoomOrderDetailUrl: '/client/parking-orderinfo/detail/',
-	//获取信息列表
-	getMessageListUrl: '/client/membernews',
-	//消息已读接口
-	messageReadUrl: '/client/membernews/read/',
-	// 获取附近的路段
-	nearRoadslUrl: '/client/roadinfo/nearRoads',
-	// 获取路段收费规则
-	roadsChargeRuleUrl: '/client/roadinfo/feeRule/',
-	//包月信息
-	monthInfoUrl: '/client/memberinfo/monthInfo/',
-	//创建包月
-	createMonthUrl: '/client/memberinfo/createMonth',
-	//包月支付
-	monthPayUrl: '/client/monthpay/gzbank/quick',
-	//包月支付查询
-	getMonthPayUrl: '/client/monthpay/query/',
-	//包月列表
-	getMonthListUrl: '/client/memberinfo/monthList',
-	//取消包月订单
-	cancelMonthUrl: '/client/memberinfo/cancelMonth/',
+  // 用户车辆
+  mycarsUrl: '/client/membervehicle',
+  // 设置为默认车辆
+  setDefaultCarUrl: '/client/membervehicle/modifyDefault/',
+  //室内停车订单列表
+  getRoomparkingList: '/client/parking-orderinfo/pageList',
+  // 获取订单列表
+  getOrderListUrl: '/client/orderinfo',
+  // 获取支付订单详情
+  getOrderinfoUrl: '/client/orderinfo/paydetail/',
+  // 获取订单详情
+  getOrderDetailUrl: '/client/orderinfo/detail/',
+  getRoomOrderDetailUrl: '/client/parking-orderinfo/detail/',
+  //获取信息列表
+  getMessageListUrl: '/client/membernews',
+  //消息已读接口
+  messageReadUrl: '/client/membernews/read/',
+  // 获取附近的路段
+  nearRoadslUrl: '/client/roadinfo/nearRoads',
+  // 获取路段收费规则
+  roadsChargeRuleUrl: '/client/roadinfo/feeRule/',
+  //包月信息
+  monthInfoUrl: '/client/memberinfo/monthInfo/',
+  //创建包月
+  createMonthUrl: '/client/memberinfo/createMonth',
+  //包月支付
+  monthPayUrl: '/client/monthpay/gzbank/quick',
+  //包月支付查询
+  getMonthPayUrl: '/client/monthpay/query/',
+  //包月列表
+  getMonthListUrl: '/client/memberinfo/monthList',
+  //取消包月订单
+  cancelMonthUrl: '/client/memberinfo/cancelMonth/',
 
-	//启动无感支付
-	feePayUrl: '/client/membervehicle/enable/feepay/',
-	//贵州银行快捷支付
-	payGzbankUrl: '/client/pay/gzbank/quick',
+  //启动无感支付
+  feePayUrl: '/client/membervehicle/enable/feepay/',
+  //贵州银行快捷支付
+  payGzbankUrl: '/client/pay/gzbank/quick',
 
-	// 贵州银行支付
-	gzbankurl: 'http://wx.hw.hongweisoft.com/pay/client/gzbank/paygate',
-	// 订单查询
-	getOrderInfoApi: '/client/pay/query/',
-	// 查询设备状态
-	getEqupmentStatusApi: '/client/hardware/deviceInfo/',
-	// 订单退款
-	updateOrderRefundApi: '/client/orderinfo/refundApply',
-	// 获取退款详情
-	getOrderRefundDetailsApi: '/client/orderinfo/refund/detail/',
-	// 普通微信支付
-	ordinaryWxPayApi: '/client/pay/gzbank/poly',
-	// 包月微信支付
-	monthlyWxPayApi: '/client/monthpay/gzbank/poly',
-	// 获取条款须知
-	getSystermsApi: '/client/systerms/getByType/',
-	//车位锁新增车牌信息
-	bindVehicleNoApi: '/client/orderinfo/bindVehicleNo',
-	codeV2Url: {
-		// 发送验证码V2
-		sendSmsCodeV2Url: '/client/auth/sendSmsCodeV2',
-		// 验证短信验证码V2
-		verifyCodeV2Url: '/client/auth/verifyCodeV2',
-		// 登出
-		logoutUrl: '/client/auth/loginout'
-	},
-	// 地磁获取小票详情
-	geomaLockDetailsUrl: '/client/orderinfo/detailByQrcode',
-	//入场扫码信息
-	getDetailEntrance: '/client/parking-orderinfo/detail/entrance',
-	//场内码扫码信息
-	getDetailAdvance: '/client/parking-orderinfo/detail/advance',
-	//出场码扫码信息
-	getDetailExport: '/client/parking-orderinfo/detail/export',
-	//无牌入场
-	entranceByNoVehicle: '/client/parking-orderinfo/entrance/noVehicleNo',
-	//场内车牌查询订单信息
-	getAdvanceInfo: '/client/parking-orderinfo/advance/info-by-vehicle',
-	//出场页面信息
-	getExportInfo: '/client/parking-orderinfo/export/info',
-	// 出场支付状态查询
-	getOrderStateExportUrl: '/client/payment/parking/query',
-	// 出场快捷支付
-	quickPayExportUrl: '/client/payment/parking/gzbank/quick',
-	// 出场聚合支付
-	polyPayExportUrl: '/client/payment/parking/gzbank/poly',
-	// 获取数据字典接口
-	getDictUrl: '/admin/dict/data/type/',
+  // 贵州银行支付
+  gzbankurl: 'http://wx.hw.hongweisoft.com/pay/client/gzbank/paygate',
+  // 订单查询
+  getOrderInfoApi: '/client/pay/query/',
+  // 查询设备状态
+  getEqupmentStatusApi: '/client/hardware/deviceInfo/',
+  // 订单退款
+  updateOrderRefundApi: '/client/orderinfo/refundApply',
+  // 获取退款详情
+  getOrderRefundDetailsApi: '/client/orderinfo/refund/detail/',
+  // 普通微信支付
+  ordinaryWxPayApi: '/client/pay/gzbank/poly',
+  // 包月微信支付
+  monthlyWxPayApi: '/client/monthpay/gzbank/poly',
+  // 获取条款须知
+  getSystermsApi: '/client/systerms/getByType/',
+  //车位锁新增车牌信息
+  bindVehicleNoApi: '/client/orderinfo/bindVehicleNo',
+  codeV2Url: {
+    // 发送验证码V2
+    sendSmsCodeV2Url: '/client/auth/sendSmsCodeV2',
+    // 验证短信验证码V2
+    verifyCodeV2Url: '/client/auth/verifyCodeV2',
+    // 登出
+    logoutUrl: '/client/auth/loginout'
+  },
+  // 地磁获取小票详情
+  geomaLockDetailsUrl: '/client/orderinfo/detailByQrcode',
+  //入场扫码信息
+  getDetailEntrance: '/client/parking-orderinfo/detail/entrance',
+  //场内码扫码信息
+  getDetailAdvance: '/client/parking-orderinfo/detail/advance',
+  //出场码扫码信息
+  getDetailExport: '/client/parking-orderinfo/detail/export',
+  //无牌入场
+  entranceByNoVehicle: '/client/parking-orderinfo/entrance/noVehicleNo',
+  //场内车牌查询订单信息
+  getAdvanceInfo: '/client/parking-orderinfo/advance/info-by-vehicle',
+  //出场页面信息
+  getExportInfo: '/client/parking-orderinfo/export/info',
+  // 出场支付状态查询
+  getOrderStateExportUrl: '/client/payment/parking/query',
+  // 出场快捷支付
+  quickPayExportUrl: '/client/payment/parking/gzbank/quick',
+  // 出场聚合支付
+  polyPayExportUrl: '/client/payment/parking/gzbank/poly',
+  // 获取数据字典接口
+  getDictUrl: '/admin/dict/data/type/',
   // 微信支付
-	wechatPayUrl: '/client/pay/wechat'
-}
+  wechatPayUrl: '/client/pay/wechat',
+  // 停车场微信支付
+  parkingWechatPayUrl: '/client/payment/parking/wechat'
+};
 
-export {
-	apiurl
-}
+export { apiurl };

+ 167 - 160
common/http.api.js

@@ -1,166 +1,173 @@
-import {
-	apiurl
-} from "./apiurl.js"
+import { apiurl } from './apiurl.js';
 
 // 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作,更多内容详见uView对拦截器的介绍部分:
 // https://uviewui.com/js/http.html#%E4%BD%95%E8%B0%93%E8%AF%B7%E6%B1%82%E6%8B%A6%E6%88%AA%EF%BC%9F
 const install = (Vue, vm) => {
-	// 反馈提交
-	let feedbackAdd = (params = {}) => vm.$u.post(apiurl.feedbackAddUrl, params);
-
-	let getuseinfo = (params = {}) => vm.$u.get(apiurl.getuseinfourl + '/' + params);
-
-	let createOrder = (params = {}) => vm.$u.post(apiurl.createOrderurl, params);
-
-	let bindphone = (params = {}) => vm.$u.post(apiurl.bindphoneurl, params);
-
-	let getPhoneLoginCode = (params = {}) => vm.$u.post(apiurl.phoneLoginCodeUrl, params);
-
-	let phoneLoginAuth = (params = {}) => vm.$u.post(apiurl.phoneLoginAuthUrl, {
-		code: params.code
-	}, {
-		Authorization: `Bearer ${params.accessToken}`,
-		user_id: params.userId
-	});
-
-	let getWXInfo = (params = {}) => vm.$u.get(apiurl.getWXInfoUrl + params);
-
-	let wxPay = (params = {}) => vm.$u.post(apiurl.wxPayUrl, params);
-
-	let getIndexData = (params = {}) => vm.$u.post(apiurl.getIndexDataUrl, params);
-
-	let roadInfoById = (params = {}) => vm.$u.get(apiurl.roadInfoById + params.id);
-
-	let getMycars = (params = {}) => vm.$u.get(apiurl.mycarsUrl, params);
-	let addCar = (params = {}) => vm.$u.post(apiurl.mycarsUrl, params);
-	let delCar = (params = {}) => vm.$u.delete(apiurl.mycarsUrl + '/' + params);
-	let setDefaultCar = (params = {}) => vm.$u.put(apiurl.setDefaultCarUrl + params.id);
-
-	let getOrderList = (params = {}) => vm.$u.get(apiurl.getOrderListUrl, params);
-	//室内停车订单列表api
-	let getRoomParkingApi = (params = {}) => vm.$u.get(apiurl.getRoomparkingList, params)
-	let getOrderinfo = (params = {}) => vm.$u.get(apiurl.getOrderinfoUrl + params.id);
-	let getRoomOrderDetail = (params = {}) => vm.$u.get(apiurl.getRoomOrderDetailUrl + params.id, {
-		showLoading: false
-	});
-	let getOrderDetail = (params = {}) => vm.$u.get(apiurl.getOrderDetailUrl + params.id, {
-		showLoading: false
-	});
-
-	let getMessageList = (params = {}) => vm.$u.get(apiurl.getMessageListUrl, params);
-	let messageRead = (params = {}) => vm.$u.put(apiurl.messageReadUrl + params.newId);
-
-	let nearRoadsl = (params = {}) => vm.$u.post(apiurl.nearRoadslUrl, params);
-	let roadChargeRule = (params = {}) => vm.$u.get(apiurl.roadsChargeRuleUrl + params.roadNo);
-
-	let monthInfo = (params = {}) => vm.$u.get(apiurl.monthInfoUrl, params)
-	let createMonth = (params = {}) => vm.$u.post(apiurl.createMonthUrl, params);
-	let monthPay = (params = {}) => vm.$u.post(apiurl.monthPayUrl, params);
-	let getMonthPay = (params = {}) => vm.$u.get(apiurl.getMonthPayUrl + params.id);
-	let getMonthList = (params = {}) => vm.$u.get(apiurl.getMonthListUrl, params);
-	let cancelMonth = (params = {}) => vm.$u.put(apiurl.cancelMonthUrl + params.monthId);
-
-	let feePay = (params = {}) => vm.$u.put(apiurl.feePayUrl + params.vehicleId);
-	let payGzbank = (params = {}) => vm.$u.post(apiurl.payGzbankUrl, params);
-
-	let bindVehicleNo = (params = {}) => vm.$u.post(apiurl.bindVehicleNoApi, params);
-
-	//贵州银行支付
-	let gzbank = (params = {}) => vm.$u.post(apiurl.gzbankurl, params);
-	// 订单查询
-	let getOrderInfo = (params = {}) => vm.$u.get(apiurl.getOrderInfoApi + params.orderId);
-	// 设备状态查询
-	let getEquomentInfo = (params = {}) => vm.$u.get(apiurl.getEqupmentStatusApi + params.orderNo);
-	// 订单退款操作
-	let updateOrderRefund = (params = {}) => vm.$u.post(apiurl.updateOrderRefundApi, params);
-	// 获取订单退款详情
-	let getOrderRefundDetails = (params = {}) => vm.$u.get(apiurl.getOrderRefundDetailsApi + params.orderId);
-	// 普通微信支付
-	let ordinaryWxPay = (params = {}) => vm.$u.post(apiurl.ordinaryWxPayApi, params);
-	// 包月微信支付
-	let monthlyWxPay = (params = {}) => vm.$u.post(apiurl.monthlyWxPayApi, params);
-	// 获取自定义富文本内容: 0-包月须知 1-用户服务条款 2-隐私权政策信息 3-收费标准 4-退款温馨提示
-	let getSysterms = (params = {}) => vm.$u.get(apiurl.getSystermsApi + params.termsType);
-	// 通过微信登录获取openid
-	let codeV2Api = {
-		// 发送验证码V2
-		sendSmsCodeV2api: (params = {}) => vm.$u.post(apiurl.codeV2Url.sendSmsCodeV2Url, params),
-		// 验证短信验证码V2
-		verifyCodeV2Api: (params = {}) => vm.$u.post(apiurl.codeV2Url.verifyCodeV2Url, params),
-		// 登出
-		logoutApi: (params = {}) => vm.$u.post(apiurl.codeV2Url.logoutUrl, params)
-	};
-	let geomaLockDetailsApi = (params = {}) => vm.$u.post(apiurl.geomaLockDetailsUrl, params);
-	let getDetailEntranceApi = (params = {}) => vm.$u.post(apiurl.getDetailEntrance, params);
-	let getDetailAdvanceApi = (params = {}) => vm.$u.post(apiurl.getDetailAdvance, params);
-	let getDetailExportApi = (params = {}) => vm.$u.post(apiurl.getDetailExport, params);
-	let entranceByNoVehicleApi = (params = {}) => vm.$u.post(apiurl.entranceByNoVehicle, params);
-	let getAdvanceInfoApi = (params = {}) => vm.$u.post(apiurl.getAdvanceInfo, params);
-	let getExportInfoApi = (params = {}) => vm.$u.post(apiurl.getExportInfo, params);
-	let getOrderStateExportApi = (params = {}) => vm.$u.post(apiurl.getOrderStateExportUrl, params)
-	let quickPayExportApi = (params = {}) => vm.$u.post(apiurl.quickPayExportUrl, params)
-	let polyPayExportApi = (params = {}) => vm.$u.post(apiurl.polyPayExportUrl, params)
-	let getDictApi = (params = {}) => vm.$u.get(apiurl.getDictUrl + params.type);
-	let wechatPayApi = (params = {}) => vm.$u.post(apiurl.wechatPayUrl, params);
-
-	// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
-	vm.$u.api = {
-		feedbackAdd,
-		getuseinfo,
-		createOrder,
-		bindphone,
-		getPhoneLoginCode,
-		phoneLoginAuth,
-		getWXInfo,
-		wxPay,
-		getIndexData,
-		getMycars,
-		addCar,
-		delCar,
-		setDefaultCar,
-		roadInfoById,
-		getOrderinfo,
-		getOrderList,
-		getOrderDetail,
-		gzbank,
-		nearRoadsl,
-		roadChargeRule,
-		getMessageList,
-		payGzbank,
-		monthInfo,
-		createMonth,
-		monthPay,
-		getMonthPay,
-		getMonthList,
-		cancelMonth,
-		messageRead,
-		feePay,
-		getOrderInfo,
-		getEquomentInfo,
-		updateOrderRefund,
-		getOrderRefundDetails,
-		ordinaryWxPay,
-		monthlyWxPay,
-		getSysterms,
-		bindVehicleNo,
-		codeV2Api,
-		geomaLockDetailsApi,
-		getDetailEntranceApi,
-		getDetailAdvanceApi,
-		getDetailExportApi,
-		entranceByNoVehicleApi,
-		getAdvanceInfoApi,
-		getExportInfoApi,
-		getOrderStateExportApi,
-		quickPayExportApi,
-		polyPayExportApi,
-		getRoomParkingApi,
-		getRoomOrderDetail,
-		getDictApi,
-		wechatPayApi
-	};
-}
+  // 反馈提交
+  let feedbackAdd = (params = {}) => vm.$u.post(apiurl.feedbackAddUrl, params);
+
+  let getuseinfo = (params = {}) => vm.$u.get(apiurl.getuseinfourl + '/' + params);
+
+  let createOrder = (params = {}) => vm.$u.post(apiurl.createOrderurl, params);
+
+  let bindphone = (params = {}) => vm.$u.post(apiurl.bindphoneurl, params);
+
+  let getPhoneLoginCode = (params = {}) => vm.$u.post(apiurl.phoneLoginCodeUrl, params);
+
+  let phoneLoginAuth = (params = {}) =>
+    vm.$u.post(
+      apiurl.phoneLoginAuthUrl,
+      {
+        code: params.code
+      },
+      {
+        Authorization: `Bearer ${params.accessToken}`,
+        user_id: params.userId
+      }
+    );
+
+  let getWXInfo = (params = {}) => vm.$u.get(apiurl.getWXInfoUrl + params);
+
+  let wxPay = (params = {}) => vm.$u.post(apiurl.wxPayUrl, params);
+
+  let getIndexData = (params = {}) => vm.$u.post(apiurl.getIndexDataUrl, params);
+
+  let roadInfoById = (params = {}) => vm.$u.get(apiurl.roadInfoById + params.id);
+
+  let getMycars = (params = {}) => vm.$u.get(apiurl.mycarsUrl, params);
+  let addCar = (params = {}) => vm.$u.post(apiurl.mycarsUrl, params);
+  let delCar = (params = {}) => vm.$u.delete(apiurl.mycarsUrl + '/' + params);
+  let setDefaultCar = (params = {}) => vm.$u.put(apiurl.setDefaultCarUrl + params.id);
+
+  let getOrderList = (params = {}) => vm.$u.get(apiurl.getOrderListUrl, params);
+  //室内停车订单列表api
+  let getRoomParkingApi = (params = {}) => vm.$u.get(apiurl.getRoomparkingList, params);
+  let getOrderinfo = (params = {}) => vm.$u.get(apiurl.getOrderinfoUrl + params.id);
+  let getRoomOrderDetail = (params = {}) =>
+    vm.$u.get(apiurl.getRoomOrderDetailUrl + params.id, {
+      showLoading: false
+    });
+  let getOrderDetail = (params = {}) =>
+    vm.$u.get(apiurl.getOrderDetailUrl + params.id, {
+      showLoading: false
+    });
+
+  let getMessageList = (params = {}) => vm.$u.get(apiurl.getMessageListUrl, params);
+  let messageRead = (params = {}) => vm.$u.put(apiurl.messageReadUrl + params.newId);
+
+  let nearRoadsl = (params = {}) => vm.$u.post(apiurl.nearRoadslUrl, params);
+  let roadChargeRule = (params = {}) => vm.$u.get(apiurl.roadsChargeRuleUrl + params.roadNo);
+
+  let monthInfo = (params = {}) => vm.$u.get(apiurl.monthInfoUrl, params);
+  let createMonth = (params = {}) => vm.$u.post(apiurl.createMonthUrl, params);
+  let monthPay = (params = {}) => vm.$u.post(apiurl.monthPayUrl, params);
+  let getMonthPay = (params = {}) => vm.$u.get(apiurl.getMonthPayUrl + params.id);
+  let getMonthList = (params = {}) => vm.$u.get(apiurl.getMonthListUrl, params);
+  let cancelMonth = (params = {}) => vm.$u.put(apiurl.cancelMonthUrl + params.monthId);
+
+  let feePay = (params = {}) => vm.$u.put(apiurl.feePayUrl + params.vehicleId);
+  let payGzbank = (params = {}) => vm.$u.post(apiurl.payGzbankUrl, params);
+
+  let bindVehicleNo = (params = {}) => vm.$u.post(apiurl.bindVehicleNoApi, params);
+
+  //贵州银行支付
+  let gzbank = (params = {}) => vm.$u.post(apiurl.gzbankurl, params);
+  // 订单查询
+  let getOrderInfo = (params = {}) => vm.$u.get(apiurl.getOrderInfoApi + params.orderId);
+  // 设备状态查询
+  let getEquomentInfo = (params = {}) => vm.$u.get(apiurl.getEqupmentStatusApi + params.orderNo);
+  // 订单退款操作
+  let updateOrderRefund = (params = {}) => vm.$u.post(apiurl.updateOrderRefundApi, params);
+  // 获取订单退款详情
+  let getOrderRefundDetails = (params = {}) => vm.$u.get(apiurl.getOrderRefundDetailsApi + params.orderId);
+  // 普通微信支付
+  let ordinaryWxPay = (params = {}) => vm.$u.post(apiurl.ordinaryWxPayApi, params);
+  // 包月微信支付
+  let monthlyWxPay = (params = {}) => vm.$u.post(apiurl.monthlyWxPayApi, params);
+  // 获取自定义富文本内容: 0-包月须知 1-用户服务条款 2-隐私权政策信息 3-收费标准 4-退款温馨提示
+  let getSysterms = (params = {}) => vm.$u.get(apiurl.getSystermsApi + params.termsType);
+  // 通过微信登录获取openid
+  let codeV2Api = {
+    // 发送验证码V2
+    sendSmsCodeV2api: (params = {}) => vm.$u.post(apiurl.codeV2Url.sendSmsCodeV2Url, params),
+    // 验证短信验证码V2
+    verifyCodeV2Api: (params = {}) => vm.$u.post(apiurl.codeV2Url.verifyCodeV2Url, params),
+    // 登出
+    logoutApi: (params = {}) => vm.$u.post(apiurl.codeV2Url.logoutUrl, params)
+  };
+  let geomaLockDetailsApi = (params = {}) => vm.$u.post(apiurl.geomaLockDetailsUrl, params);
+  let getDetailEntranceApi = (params = {}) => vm.$u.post(apiurl.getDetailEntrance, params);
+  let getDetailAdvanceApi = (params = {}) => vm.$u.post(apiurl.getDetailAdvance, params);
+  let getDetailExportApi = (params = {}) => vm.$u.post(apiurl.getDetailExport, params);
+  let entranceByNoVehicleApi = (params = {}) => vm.$u.post(apiurl.entranceByNoVehicle, params);
+  let getAdvanceInfoApi = (params = {}) => vm.$u.post(apiurl.getAdvanceInfo, params);
+  let getExportInfoApi = (params = {}) => vm.$u.post(apiurl.getExportInfo, params);
+  let getOrderStateExportApi = (params = {}) => vm.$u.post(apiurl.getOrderStateExportUrl, params);
+  let quickPayExportApi = (params = {}) => vm.$u.post(apiurl.quickPayExportUrl, params);
+  let polyPayExportApi = (params = {}) => vm.$u.post(apiurl.polyPayExportUrl, params);
+  let getDictApi = (params = {}) => vm.$u.get(apiurl.getDictUrl + params.type);
+  let wechatPayApi = (params = {}) => vm.$u.post(apiurl.wechatPayUrl, params);
+  let parkingWechatPayApi = (params = {}) => vm.$u.post(apiurl.parkingWechatPayUrl, params);
+
+  // 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
+  vm.$u.api = {
+    feedbackAdd,
+    getuseinfo,
+    createOrder,
+    bindphone,
+    getPhoneLoginCode,
+    phoneLoginAuth,
+    getWXInfo,
+    wxPay,
+    getIndexData,
+    getMycars,
+    addCar,
+    delCar,
+    setDefaultCar,
+    roadInfoById,
+    getOrderinfo,
+    getOrderList,
+    getOrderDetail,
+    gzbank,
+    nearRoadsl,
+    roadChargeRule,
+    getMessageList,
+    payGzbank,
+    monthInfo,
+    createMonth,
+    monthPay,
+    getMonthPay,
+    getMonthList,
+    cancelMonth,
+    messageRead,
+    feePay,
+    getOrderInfo,
+    getEquomentInfo,
+    updateOrderRefund,
+    getOrderRefundDetails,
+    ordinaryWxPay,
+    monthlyWxPay,
+    getSysterms,
+    bindVehicleNo,
+    codeV2Api,
+    geomaLockDetailsApi,
+    getDetailEntranceApi,
+    getDetailAdvanceApi,
+    getDetailExportApi,
+    entranceByNoVehicleApi,
+    getAdvanceInfoApi,
+    getExportInfoApi,
+    getOrderStateExportApi,
+    quickPayExportApi,
+    polyPayExportApi,
+    getRoomParkingApi,
+    getRoomOrderDetail,
+    getDictApi,
+    wechatPayApi,
+    parkingWechatPayApi
+  };
+};
 
 export default {
-	install
-}
+  install
+};

+ 1 - 1
pages/parkexport/parkexport.vue

@@ -96,7 +96,7 @@
 					polyOrderId: '',
 					isBack: 0
 				},
-				saopay:true,
+				saopay: true,
 				payWayPop: false, // 支付弹框
 				infoData: undefined, // 订单信息
 				orderList: [], // 支付订单列表

+ 306 - 273
pages/paymentMethod/paymentMethod.vue

@@ -1,13 +1,26 @@
+<!--
+ * @Description: 支付方式选择  微信or快捷支付or聚合支付
+ * @Author: 空白格
+ * @Date: 2022-08-01 11:45:20
+ * @LastEditors: 空白格
+ * @LastEditTime: 2022-09-01 09:54:36
+ * @FilePath: \parking_h5\pages\paymentMethod\paymentMethod.vue
+ * @Copyright: Copyright (c) 2016~2022 by 空白格, All Rights Reserved. 
+-->
+
 <template>
-	<!-- 
-		支付方式选择  微信or贵阳银行
-	 -->
-	<view>
-		<u-modal v-model="payWayPop" :title-style="{ color: '#404040' }" title="缴费方式" width="660rpx"
-			:show-confirm-button="false" :show-cancel-button="false">
-			<view class="slot-content">
-				<view class="pay-way-new">
-					<!-- <view class="pay-way-item pay-way-item-hy" @click="gyBankPay">
+  <view>
+    <u-modal
+      v-model="payWayPop"
+      :title-style="{ color: '#404040' }"
+      title="缴费方式"
+      width="660rpx"
+      :show-confirm-button="false"
+      :show-cancel-button="false"
+    >
+      <view class="slot-content">
+        <view class="pay-way-new">
+          <!-- <view class="pay-way-item pay-way-item-hy" @click="gyBankPay">
 						<image src="../../static/img/guiyang-bank-icon.png" mode=""></image>
 						<view class="title">贵州银行</view>
 						<view class="subtitle">前三个月每天首次一分钱<br/>长期八折优惠</view>
@@ -16,274 +29,294 @@
 						<image src="../../static/img/juhe-icon.png" mode=""></image>
 						<view class="title">微信/支付宝</view>
 					</view> -->
-					<view class="pay-way-item pay-way-item-hy"
-						@click="$u.debounce(gyBankPay, 1000, (immediate = true))">
-						<image src="/static/img/gyyh-icon.svg" mode=""></image>
-						<view class="title">贵州银行</view>
-					</view>
-					<!-- #ifdef H5 || MP-WEIXIN -->
-					<view class="pay-way-item pay-way-item-wx" @click="$u.debounce(wechatPay, 1000, (immediate = true))"
-						v-if="wxEnv">
-						<image src="/static/img/weixin-icon.svg" mode=""></image>
-						<view class="title">微信支付</view>
-					</view>
-					<!-- #endif -->
-					<view class="pay-way-item pay-way-item-jh" @click="$u.debounce(juhePay, 1000, (immediate = true))">
-						<image src="/static/img/juhe-icon.svg" mode=""></image>
-						<view class="title">聚合支付</view>
-					</view>
-				</view>
-				<view class="pay-way-subtitle">
-					<view class="pay-way-subtitle-item">前三个月每天首次一分钱,长期八折优惠</view>
-					<!-- #ifdef H5 || MP-WEIXIN -->
-					<view class="pay-way-subtitle-item" v-if="wxEnv">&nbsp;</view>
-					<!-- #endif -->
-					<view class="pay-way-subtitle-item">&nbsp;</view>
-				</view>
-				<button class="pay-way-close-btn" @click="closePaymentMethod">关闭</button>
-			</view>
-		</u-modal>
-		<u-toast ref="uToast" />
-	</view>
+          <view class="pay-way-item pay-way-item-hy" @click="$u.debounce(gyBankPay, 1000, (immediate = true))">
+            <image src="/static/img/gyyh-icon.svg" mode=""></image>
+            <view class="title">贵州银行</view>
+          </view>
+          <!-- #ifdef H5 || MP-WEIXIN -->
+          <view class="pay-way-item pay-way-item-wx" @click="$u.debounce(wechatPay, 1000, (immediate = true))" v-if="wxEnv">
+            <image src="/static/img/weixin-icon.svg" mode=""></image>
+            <view class="title">微信支付</view>
+          </view>
+          <!-- #endif -->
+          <view class="pay-way-item pay-way-item-jh" @click="$u.debounce(juhePay, 1000, (immediate = true))">
+            <image src="/static/img/juhe-icon.svg" mode=""></image>
+            <view class="title">聚合支付</view>
+          </view>
+        </view>
+        <view class="pay-way-subtitle">
+          <view class="pay-way-subtitle-item">前三个月每天首次一分钱,长期八折优惠</view>
+          <!-- #ifdef H5 || MP-WEIXIN -->
+          <view class="pay-way-subtitle-item" v-if="wxEnv">&nbsp;</view>
+          <!-- #endif -->
+          <view class="pay-way-subtitle-item">&nbsp;</view>
+        </view>
+        <button class="pay-way-close-btn" @click="closePaymentMethod">关闭</button>
+      </view>
+    </u-modal>
+    <u-toast ref="uToast" />
+  </view>
 </template>
 
 <script>
-	import {
-		getEnvIsWx
-	} from '@/utils/judgEnvironment.js';
-	import $wxPay from '@/utils/wxPay.js';
-	export default {
-		props: {
-			// 弹框显示
-			payWayPop: {
-				type: Boolean,
-				default: false
-			},
-			// 订单数组
-			curOrderList: {
-				type: Array,
-				default: null
-			},
-			// 设备编号
-			deviceNo: {
-				type: String,
-				default: null
-			},
-			// 地磁支付需要字段
-			payeeId: {
-				type: String,
-				default: undefined
-			},
-			// 地磁支付需要字段
-			payeeName: {
-				type: String,
-				default: undefined
-			},
-			//扫码支付需要字段
-			sanPay: {
-				type: Boolean,
-				default: false
-			},
-			// 追缴类型
-			pursueType: {
-				type: String,
-				default: undefined
-			},
-			// 跳转页面
-			jumpUrl: {
-				type: String,
-				default: null
-			},
-			// 出口扫码   接口不一样
-			exportFlag: {
-				type: Boolean,
-				default: false
-			}
-		},
-		data() {
-			return {
-				wxEnv: true
-			};
-		},
-		created() {
-			this.wxEnv = getEnvIsWx();
-		},
-		methods: {
-			/**
-			 * 贵阳银行支付
-			 * @param {Array} orderList 需要支付的订单号组成的数组
-			 * @param {String} deviceNo 设备编号(只有车位锁部分有)
-			 * */
-			gyBankPay() {
-				const params = {
-					orderList: this.curOrderList,
-					deviceNo: this.deviceNo,
-					jumpUrl: this.jumpUrl,
-					payeeId: this.payeeId,
-					payeeName: this.payeeName,
-					pursueType: this.pursueType,
-					sanPay: this.sanPay
-				};
-				if (this.exportFlag == true) {
-					this.$u.api.quickPayExportApi(params).then(res => {
-						if (res.data.needPay) {
-							let payUrl = res.data.url;
-							location.href = payUrl;
-						} else {
-							this.$refs.uToast.show({
-								title: '无需支付',
-								type: 'info',
-							});
-							setTimeout(() => {
-								uni.hideLoading();
-								location.reload()
-							}, 1000)
-						}
-					}).catch(err => {
-						this.$refs.uToast.show({
-							title: err.msg,
-							type: 'error',
-						});
-					});
-				} else {
-					this.$u.api.payGzbank(params).then(res => {
-						if (res.data.needPay) {
-							let payUrl = res.data.url;
-							location.href = payUrl;
-						} else {
-							this.$refs.uToast.show({
-								title: '无需支付',
-								type: 'info',
-							});
-							setTimeout(() => {
-								uni.hideLoading();
-								location.reload()
-							}, 1000)
-						}
-					}).catch(err => {
-						this.$refs.uToast.show({
-							title: err.msg,
-							type: 'error',
-						});
-					});
-				}
-			},
-			/**
-			 * 聚合支付
-			 * 判断vuex中是否存在openId
-			 * 存在直接调起微信支付
-			 * 不存在则通过微信登录去获取用户的code
-			 * 完成后通过code去获取用户的openId等信息
-			 * 最后再调起微信支付
-			 * */
-			juhePay() {
-				this.getWXPayByJava(this.curOrderList, this.deviceNo);
-			},
-			/**
-			 * 微信支付
-			 */
-			wechatPay() {
-				if (this.exportFlag) {
-					this.$refs.uToast.show({
-						title: '停车场暂不支持微信支付!',
-						type: 'warning'
-					});
-				} else {
-					this.$u.api
-						.wechatPayApi({
-							orderList: this.curOrderList,
-							openid: this.vuex_wxinfo.openId,
-							deviceNo: this.deviceNo || undefined,
-							payeeId: this.payeeId || undefined,
-							payeeName: this.payeeName || undefined
-						})
-						.then((res) => {
-							if (res.code === 200) {
-								$wxPay.wexinPay(res.data.wx).then((res1) => {
-									switch (Number(res1.code)) {
-										case 0: // 成功
-											//#ifdef H5
-											window.location.reload();
-											//#endif
-											break;
-										case 1: // 取消
-											this.$refs.uToast.show({
-												title: '已取消支付',
-												type: 'info'
-											});
-											break;
-										case 2: // 支付失败
-											this.$refs.uToast.show({
-												title: '支付失败,请检查!',
-												type: 'error'
-											});
-											break;
-									}
-								});
-							}
-						});
-				}
-			},
-			/**
-			 * 直接通过后台获取贵阳银行微信支付地址
-			 * @param {Array} list 需要支付的订单组合数组
-			 * @param {Number} deviceNo 设备编号(在停车锁部分需要)
-			 * */
-			getWXPayByJava(orderList, deviceNo) {
-				let params = {
-					orderList: orderList,
-					openid: this.vuex_wxinfo.openId,
-					jumpUrl: this.jumpUrl,
-					deviceNo: deviceNo ? deviceNo : null,
-					payeeId: this.payeeId,
-					payeeName: this.payeeName,
-					pursueType: this.pursueType,
-					sanPay: this.sanPay
-				};
-				if (this.exportFlag) {
-					this.$u.api.polyPayExportApi(params)
-						.then(res => {
-							if (res.code === 200) {
-								localStorage.setItem('jumpUrl', this.jumpUrl)
-								location.href = res.data.qrCodeUrl
-							} else {
-								uni.hideLoading();
-							}
-						})
-						.catch(err => {
-							this.$refs.uToast.show({
-								title: '无法调起微信支付!',
-								type: 'error',
-							});
-						})
-				} else {
-					this.$u.api.ordinaryWxPay(params)
-						.then(res => {
-							if (res.code === 200) {
-								localStorage.setItem('jumpUrl', this.jumpUrl)
-								location.href = res.data.qrCodeUrl
-							} else {
-								uni.hideLoading();
-							}
-						})
-						.catch(err => {
-							this.$refs.uToast.show({
-								title: '无法调起微信支付!',
-								type: 'error',
-							});
-						})
-				}
-			},
-			/**
-			 * 关闭弹框
-			 * */
-			closePaymentMethod() {
-				this.$emit('closePaymentMethod');
-			}
-		}
-	};
+import { getEnvIsWx } from '@/utils/judgEnvironment.js';
+import $wxPay from '@/utils/wxPay.js';
+export default {
+  props: {
+    // 弹框显示
+    payWayPop: {
+      type: Boolean,
+      default: false
+    },
+    // 订单数组
+    curOrderList: {
+      type: Array,
+      default: null
+    },
+    // 设备编号
+    deviceNo: {
+      type: String,
+      default: null
+    },
+    // 地磁支付需要字段
+    payeeId: {
+      type: String,
+      default: undefined
+    },
+    // 地磁支付需要字段
+    payeeName: {
+      type: String,
+      default: undefined
+    },
+    // 扫码支付需要字段
+    sanPay: {
+      type: Boolean,
+      default: false
+    },
+    // 追缴类型
+    pursueType: {
+      type: String,
+      default: undefined
+    },
+    // 跳转页面
+    jumpUrl: {
+      type: String,
+      default: null
+    },
+    // 出口扫码   接口不一样
+    exportFlag: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data() {
+    return {
+      wxEnv: true
+    };
+  },
+  created() {
+    this.wxEnv = getEnvIsWx();
+  },
+  methods: {
+    /**
+     * 贵阳银行支付
+     * @param {Array} orderList 需要支付的订单号组成的数组
+     * @param {String} deviceNo 设备编号(只有车位锁部分有)
+     * */
+    gyBankPay() {
+      const params = {
+        orderList: this.curOrderList,
+        deviceNo: this.deviceNo,
+        jumpUrl: this.jumpUrl,
+        payeeId: this.payeeId,
+        payeeName: this.payeeName,
+        pursueType: this.pursueType,
+        sanPay: this.sanPay
+      };
+      if (this.exportFlag == true) {
+        this.$u.api
+          .quickPayExportApi(params)
+          .then((res) => {
+            if (res.data.needPay) {
+              let payUrl = res.data.url;
+              location.href = payUrl;
+            } else {
+              this.$refs.uToast.show({
+                title: '无需支付',
+                type: 'info'
+              });
+              setTimeout(() => {
+                uni.hideLoading();
+                location.reload();
+              }, 1000);
+            }
+          })
+          .catch((err) => {
+            this.$refs.uToast.show({
+              title: err.msg,
+              type: 'error'
+            });
+          });
+      } else {
+        this.$u.api
+          .payGzbank(params)
+          .then((res) => {
+            if (res.data.needPay) {
+              let payUrl = res.data.url;
+              location.href = payUrl;
+            } else {
+              this.$refs.uToast.show({
+                title: '无需支付',
+                type: 'info'
+              });
+              setTimeout(() => {
+                uni.hideLoading();
+                location.reload();
+              }, 1000);
+            }
+          })
+          .catch((err) => {
+            this.$refs.uToast.show({
+              title: err.msg,
+              type: 'error'
+            });
+          });
+      }
+    },
+    /**
+     * 聚合支付
+     * */
+    juhePay() {
+      this.getWXPayByJava(this.curOrderList, this.deviceNo);
+    },
+    /**
+     * 微信支付
+     */
+    wechatPay() {
+      const params = {
+        orderList: this.curOrderList,
+        openid: this.vuex_wxinfo.openId,
+        deviceNo: this.deviceNo || undefined,
+        payeeId: this.payeeId || undefined,
+        payeeName: this.payeeName || undefined,
+        sanPay: this.sanPay
+      };
+      if (this.exportFlag) {
+        this.$u.api.parkingWechatPayApi(params).then((res) => {
+          if (res.code === 200) {
+            $wxPay.wexinPay(res.data.wx).then((r) => {
+              switch (Number(r.code)) {
+                case 0: // 成功
+                  //#ifdef H5
+                  window.location.reload();
+                  //#endif
+                  break;
+                case 1: // 取消
+                  this.$refs.uToast.show({
+                    title: '已取消支付',
+                    type: 'info'
+                  });
+                  break;
+                case 2: // 支付失败
+                  this.$refs.uToast.show({
+                    title: '支付失败,请检查!',
+                    type: 'error'
+                  });
+                  break;
+              }
+            });
+          }
+        });
+      } else {
+        this.$u.api.wechatPayApi(params).then((res) => {
+          if (res.code === 200) {
+            $wxPay.wexinPay(res.data.wx).then((r) => {
+              switch (Number(r.code)) {
+                case 0: // 成功
+                  //#ifdef H5
+                  window.location.reload();
+                  //#endif
+                  break;
+                case 1: // 取消
+                  this.$refs.uToast.show({
+                    title: '已取消支付',
+                    type: 'info'
+                  });
+                  break;
+                case 2: // 支付失败
+                  this.$refs.uToast.show({
+                    title: '支付失败,请检查!',
+                    type: 'error'
+                  });
+                  break;
+              }
+            });
+          }
+        });
+      }
+    },
+    /**
+     * 直接通过后台获取贵阳银行微信支付地址
+     * @param {Array} list 需要支付的订单组合数组
+     * @param {Number} deviceNo 设备编号(在停车锁部分需要)
+     * */
+    getWXPayByJava(orderList, deviceNo) {
+      let params = {
+        orderList: orderList,
+        openid: this.vuex_wxinfo.openId,
+        jumpUrl: this.jumpUrl,
+        deviceNo: deviceNo ? deviceNo : null,
+        payeeId: this.payeeId,
+        payeeName: this.payeeName,
+        pursueType: this.pursueType,
+        sanPay: this.sanPay
+      };
+      if (this.exportFlag) {
+        this.$u.api
+          .polyPayExportApi(params)
+          .then((res) => {
+            if (res.code === 200) {
+              localStorage.setItem('jumpUrl', this.jumpUrl);
+              location.href = res.data.qrCodeUrl;
+            } else {
+              uni.hideLoading();
+            }
+          })
+          .catch((err) => {
+            this.$refs.uToast.show({
+              title: '无法调起微信支付!',
+              type: 'error'
+            });
+          });
+      } else {
+        this.$u.api
+          .ordinaryWxPay(params)
+          .then((res) => {
+            if (res.code === 200) {
+              localStorage.setItem('jumpUrl', this.jumpUrl);
+              location.href = res.data.qrCodeUrl;
+            } else {
+              uni.hideLoading();
+            }
+          })
+          .catch((err) => {
+            this.$refs.uToast.show({
+              title: '无法调起微信支付!',
+              type: 'error'
+            });
+          });
+      }
+    },
+    /**
+     * 关闭弹框
+     * */
+    closePaymentMethod() {
+      this.$emit('closePaymentMethod');
+    }
+  }
+};
 </script>
 
 <style lang="scss" scoped>
-	@import './paymentMethod.scss';
+@import './paymentMethod.scss';
 </style>

+ 57 - 57
utils/wxPay.js

@@ -1,59 +1,59 @@
 const wx = require('weixin-js-sdk');
 export default {
-	wexinPay(data, jumpUrl) {
-		return new Promise(r => {
-			wx.config({
-				debug: false,
-				appId: data.appId,
-				timestamp: data.timeStamp,
-				nonceStr: data.nonceStr,
-				signature: data.paySign,
-				jsApiList: ['chooseWXPay']
-			});
-			wx.ready(() => {
-				wx.chooseWXPay({
-					timestamp: data.timeStamp, //这个字段是为字符串后端返回时需检查
-					nonceStr: data.nonceStr,
-					package: data.packageValue,
-					signType: data.signType,
-					paySign: data.paySign,
-					success(res) {
-						r({
-							code: 0,
-							msg: "成功"
-						});
-					},
-					cancel() {
-						r({
-							code: 1,
-							msg: "取消"
-						});
-					},
-					fail(err) {
-						r({
-							code: 2,
-							msg: err.errMsg.split(':')[1] || '支付失败!'
-						});
-					},
-					// 无论失败成功都会执行
-					complete(e) {
-						// e.errMsg三种状态 1.chooseWXPay:ok 支付成功 2: chooseWXPay:cancel 支付取消 3:chooseWXPay:fail 支付失败
-						if (e.errMsg === 'chooseWXPay:ok') {
-							if (jumpUrl) {
-								window.location.href = jumpUrl
-							} else {
-								window.location.reload()
-							}
-						}
-					}
-				});
-			});
-			wx.error(function(err) {
-				r({
-					code: 2,
-					msg: '支付失败!'
-				});
-			});
-		})
-	}
-}
+  wexinPay(data, jumpUrl) {
+    return new Promise((r) => {
+      wx.config({
+        debug: false,
+        appId: data.appId,
+        timestamp: data.timeStamp,
+        nonceStr: data.nonceStr,
+        signature: data.paySign,
+        jsApiList: ['chooseWXPay']
+      });
+      wx.ready(() => {
+        wx.chooseWXPay({
+          timestamp: data.timeStamp, //这个字段是为字符串后端返回时需检查
+          nonceStr: data.nonceStr,
+          package: data.packageValue,
+          signType: data.signType,
+          paySign: data.paySign,
+          success(res) {
+            r({
+              code: 0,
+              msg: '成功'
+            });
+          },
+          cancel() {
+            r({
+              code: 1,
+              msg: '取消'
+            });
+          },
+          fail(err) {
+            r({
+              code: 2,
+              msg: err.errMsg.split(':')[1] || '支付失败!'
+            });
+          },
+          // 无论失败成功都会执行
+          complete(e) {
+            // e.errMsg三种状态 1.chooseWXPay:ok 支付成功 2: chooseWXPay:cancel 支付取消 3:chooseWXPay:fail 支付失败
+            if (e.errMsg === 'chooseWXPay:ok') {
+              if (jumpUrl) {
+                window.location.href = jumpUrl;
+              } else {
+                window.location.reload();
+              }
+            }
+          }
+        });
+      });
+      wx.error(function (err) {
+        r({
+          code: 2,
+          msg: '支付失败!'
+        });
+      });
+    });
+  }
+};