| | |
| | | <el-form-item label="车主姓名:" style="margin-left: 25px;" prop="name"> |
| | | <el-input v-model="statisticData.name" ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="选择全部:" style="margin-left: 25px;" prop="allFlag"> |
| | | <el-select v-model="statisticData.allFlag" :onchange="changeAll"> |
| | | <el-form-item label="选择全部:" style="margin-left: 25px;" prop="type"> |
| | | <el-select v-model="statisticData.type" :onchange="changeAll"> |
| | | <el-option label="单个" :value=0></el-option> |
| | | <el-option label="全部" :value=1></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="statisticData.allFlag == 0" label="停车场:" style="margin-left: 25px;" prop="parkId"> |
| | | <el-form-item v-if="statisticData.type == 0" label="停车场:" style="margin-left: 25px;" prop="parkId"> |
| | | <el-select v-model="statisticData.parkId" @change="changePark"> |
| | | <el-option v-for="item in table1" :key="item.id" :label="item.name" :value="item.id + ''" ></el-option> |
| | | </el-select> |
| | |
| | | isShow: false, |
| | | ticketId:"", |
| | | table1:[], |
| | | type:null, |
| | | code:null, |
| | | id:null, |
| | | statisticData:{ |
| | | allFlag:0, |
| | | type:0, |
| | | carNo:'', |
| | | parkId:'', |
| | | phone:'', |
| | |
| | | }, |
| | | created(){ |
| | | document.title = "月租车办理"; |
| | | let ua = window.navigator.userAgent.toLowerCase(); |
| | | //判断是不是微信 |
| | | if (ua.match(/MicroMessenger/i) == "micromessenger") { |
| | | // 微信 |
| | | this.type = 0 |
| | | } |
| | | //判断是不是支付宝 |
| | | if (ua.match(/AlipayClient/i) == "alipayclient") { |
| | | //支付宝 |
| | | this.type = 1 |
| | | } |
| | | if(this.type == null){ |
| | | this.$message.error("请用微信或支付宝扫描二维码") |
| | | return; |
| | | } |
| | | var url = window.location.href; |
| | | url = decodeURIComponent(url) |
| | | var count = url.split('?').length-1; |
| | | if(count >1){ //获取用户信息后跳回来本页面 |
| | | let data = this.getCodeFromUrl(url) |
| | | window.location.href = `http://hesuancj.cn/#/MonthFeePay?code=${encodeURIComponent(data.code)}&state=STATE&id=${encodeURIComponent(data.id)}` |
| | | return; |
| | | } |
| | | |
| | | var cs = url.split('?')[1]; |
| | | var cs_arr = cs.split('&'); |
| | | var cs={}; |
| | |
| | | changePark(val){ |
| | | console.log(val,'改变停车场---') |
| | | this.statisticData.parkId = val |
| | | this.pay() |
| | | }, |
| | | /** |
| | | * 解析微信redirect_uri地址中的code |
| | | */ |
| | | getCodeFromUrl (cur_url) { |
| | | let index = cur_url.split('?')[1] |
| | | let index2 = cur_url.split('?')[2] |
| | | let code = null |
| | | let id = null |
| | | let data = {} |
| | | let paramStr =index.split('&'); |
| | | |
| | | if(paramStr.length>1) { |
| | | code = paramStr[0].split('=')[1] |
| | | id = index2.split('=')[1] |
| | | }else { |
| | | id = paramStr[0].split('=')[1] |
| | | code = index2.split('&')[0].split('=')[1] |
| | | } |
| | | data.code = code |
| | | data.id = id |
| | | return data |
| | | }, |
| | | getCode(){ //获取用户微信登录信息 |
| | | this.statisticData.startTime = this.startTime |
| | | this.statisticData.endTime = this.endTime |
| | | this.statisticData.money = this.money |
| | | |
| | | if(this.type == 0 ){ |
| | | //微信,获取code |
| | | if(this.code==null||this.code==""){ |
| | | var url = encodeURIComponent("http://hesuancj.cn/#/MonthFeePay?id="+this.statisticData.parkId); |
| | | window.location.href ="https://open.weixin.qq.com/connect/oauth2/authorize?" + |
| | | "appid=wx46e756aed958f895&redirect_uri="+url+"&response_type=code" + |
| | | "&scope=snsapi_userinfo&state=STATE#wechat_redirect"; |
| | | }else{ |
| | | this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/monthFeePay/getOpenId', this.statisticData, res => { |
| | | if(res.code === 0){ |
| | | var param = res.data; |
| | | // 点击支付时候调用 |
| | | if (typeof WeixinJSBridge === 'undefined') { |
| | | if (document.addEventListener) { |
| | | document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady(param), false) |
| | | } else if (document.attachEvent) { |
| | | document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady(param)) |
| | | document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady(param)) |
| | | } |
| | | } else { |
| | | this.onBridgeReady(param) |
| | | } |
| | | |
| | | this.showFlag = false |
| | | }else { |
| | | alert('微信支付调起失败!') |
| | | } |
| | | }) |
| | | } |
| | | }else if(this.type == 1){ |
| | | //支付宝,不获取code |
| | | this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/monthFeePay/getAiLi', this.statisticData, res => { |
| | | if(res.code != 0){ |
| | | alert(res.data) |
| | | this.showFlag = false |
| | | }else { |
| | | this.$message({ |
| | | message: '2秒后自动跳转到支付页面,防止内外网数据同步延迟,请稍等', |
| | | type: 'success', |
| | | duration:2000, |
| | | }); |
| | | setTimeout(function(){window.location.href = res.msg;},2000); |
| | | this.showFlag = false; |
| | | } |
| | | }) |
| | | |
| | | } |
| | | }, |
| | | onBridgeReady (params) { |
| | | const that = this |
| | | WeixinJSBridge.invoke( |
| | | 'getBrandWCPayRequest', |
| | | { |
| | | appId: params.appId, // 公众号名称,由商户传入 |
| | | timeStamp: params.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 |
| | | nonceStr: params.nonceStr, // 支付签名随机串,不长于 32 位 |
| | | package: params.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*) |
| | | signType: params.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' |
| | | paySign: params.paySign // 支付签名 |
| | | }, |
| | | (res) => { |
| | | if (res.err_msg === 'get_brand_wcpay_request:ok') { |
| | | //that.queryOrder() // 这里是查询订单是否支付完成,然后执行成功和失败的业务逻辑 |
| | | } else if (res.err_msg === 'get_brand_wcpay_request:fail') { |
| | | alert('支付失败!') |
| | | } else if (res.err_msg === 'get_brand_wcpay_request:cancel') { |
| | | alert('支付取消!') |
| | | } |
| | | } |
| | | ) |
| | | }, |
| | | queryOrder() { |
| | | this.$byutil.postData(this, this.$systemconfig.basePath + '/ffzf/outpark/getById', {id: this.outParkId}, res => { |
| | | if (res.code === 0) { |
| | | let outpark = res.data |
| | | if(outpark.status === 1){ |
| | | window.location.href = "http://hesuancj.cn/#/indexOk?code2="+this.code2 |
| | | return; |
| | | }else { |
| | | window.location.href = "http://hesuancj.cn/#/indexFail?code2="+this.code2 |
| | | return; |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | changeAll(){ |
| | | |