Commit ba4828225f61e28ff6ff152b1f40fe8c7d0d3bb5

Authored by 刘淇
1 parent 1b936eac

静动态支付

src/api/plateNumber/plateNumber.js
1 1 import request from '@/utils/request'
2 2  
3   -export function noCarQRcodeInOutPark(params) { // 轮播图
  3 +export function noCarQRcodeInOutPark(params) { //
4 4 return request({
5 5 url: 'keyTopQrCodeInOutPark/noCarQRcodeInOutPark',
6 6 method: 'post',
... ...
src/components/dynCodePay.vue
1 1 <template>
2 2 <div>
3 3 <div class="car-wrap">
4   - <div class="carBG carBlue" >
  4 + <div class="carBG carBlue">
5 5 <p class="carNumber">{{carNumber}}</p>
6 6 <p class="payFee">{{(orderFee/100).toFixed(2)}}元</p>
7 7 </div>
... ... @@ -27,7 +27,6 @@
27 27 </li>
28 28  
29 29  
30   -
31 30 <li>
32 31 <span>待缴金额</span>
33 32 <span>{{(orderFee/100).toFixed(2)}} 元</span>
... ... @@ -48,96 +47,88 @@
48 47 </div>
49 48  
50 49  
51   -
52 50 </div>
53 51 </template>
54 52  
55 53 <script>
56 54  
57 55 // let Base64 = require('js-base64').Base64
58   -
59   -import { aliPay, getOpenId, vxPayQuery, bankH5Pay } from '@/api/orderPay/orderPay'
60   -
  56 +import { aliPay, getOpenId, vxPayQuery, bankH5Pay } from "@/api/orderPay/orderPay";
61 57 export default {
62   - name: 'dynCodePay',
  58 + name: "dynCodePay",
63 59 data() {
64 60 return {
65 61 carWrapBG: 0,
66   - carNumber: '', // 车牌
67   - parkName: '', // 停车场名称
68   - inparktime: '', // 入场时间
69   - outtime: '', // 出场时间
70   - staytime: '', // 停车时长
71   - orderFee: '', // 需要支付的费用
72   - urlAppid:'',
  62 + carNumber: "", // 车牌
  63 + parkName: "", // 停车场名称
  64 + inparktime: "", // 入场时间
  65 + outtime: "", // 出场时间
  66 + staytime: "", // 停车时长
  67 + orderFee: "", // 需要支付的费用
  68 + urlAppid: "",
73 69 arrearageActFee: 0,
74 70 arrearageDiscFee: 0,
75 71 arrearageActFee: 0,
76   - clientBrowser: '', // 客户端
  72 + clientBrowser: "", // 客户端
77 73 paySrcType: 101, //支付的类型 101 是本次 103是历史欠费
78   - orderId: '', //支付的订单
79   - webAppCode: '', // 微信code
80   - appOrderTimeout: '', // 超时描述
81   - }
  74 + orderId: "", //支付的订单
  75 + webAppCode: "", // 微信code
  76 + appOrderTimeout: "" // 超时描述
  77 + };
82 78 },
83 79 created() {
84 80 // this.carWrapBG = this.$route.query.carColor //车牌颜色
85   - this.carNumber = this.$route.query.plateno
86   - this.parkName = this.$route.query.parkName
87   - this.inparktime = this.$route.query.inparktime
88   - this.outtime = this.$route.query.outtime
89   - this.staytime = this.$route.query.staytime
90   - this.orderFee = this.$route.query.orderFee
  81 + this.carNumber = this.$route.query.plateno;
  82 + this.parkName = this.$route.query.parkName;
  83 + this.inparktime = this.$route.query.inparktime;
  84 + this.outtime = this.$route.query.outtime;
  85 + this.staytime = this.$route.query.staytime;
  86 + this.orderFee = this.$route.query.orderFee;
91 87 // this.arrearageTotalFee = this.$route.query.arrearageTotalFee // 应收
92 88 // this.arrearageDiscFee = this.$route.query.arrearageDiscFee // 优惠
93 89 // this.arrearageActFee = this.$route.query.arrearageActFee // 实收
94   - this.clientBrowser = this.$utils.clientBrowser() //支付方式
  90 + this.clientBrowser = this.$utils.clientBrowser(); //支付方式
95 91 // this.paySrcType = this.$route.query.codeType // 实收
96   - this.orderId = this.$route.query.orderId
  92 + this.orderId = this.$route.query.orderId;
97 93 // console.log(this.orderId)
98 94 // this.appOrderTimeout = this.$route.query.appOrderTimeout
99   - this.urlAppid = this.$route.query.appId
  95 + this.urlAppid = this.$route.query.appId;
100 96 if (this.clientBrowser == "微信") {
101 97 this.webAppCode = this.getCode();
102 98 }
103   -
104 99 },
105 100 methods: {
106 101 getCode() {
107   -
108   - var appID = this.urlAppid;
109   -
110   - var code = this.getUrlParam('code');
  102 + var appID = this.urlAppid;
  103 + var code = this.getUrlParam("code");
111 104 var local = window.location.href;
112   - if (code == null || code === '') {
113   - window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + appID + '&redirect_uri=' + encodeURIComponent(local) + '&response_type=code&scope=snsapi_base&state=1#wechat_redirect'
  105 + if (code == null || code === "") {
  106 + window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appID + "&redirect_uri=" + encodeURIComponent(local) + "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
114 107 } else {
115 108 return code;
116 109 }
117 110 },
118 111 getUrlParam(name) {
119   - var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
120   - var r = window.location.search.substr(1).match(reg)
121   - if (r != null) return unescape(r[2])
122   - return null
  112 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  113 + var r = window.location.search.substr(1).match(reg);
  114 + if (r != null) return unescape(r[2]);
  115 + return null;
123 116 },
124 117 toPay() {
125   - let me = this
126   - let _order = []
127   -
128   - console.log(this.orderId)
  118 + let me = this;
  119 + let _order = [];
  120 + console.log(this.orderId);
129 121 if (this.paySrcType == 103) {
130   - this.orderId = JSON.parse(this.orderId)
  122 + this.orderId = JSON.parse(this.orderId);
131 123 this.orderId.forEach(item => {
132 124 _order.push({
133 125 orderId: item
134   - })
135   - })
136   - this.orderId = []
137   - this.orderId = _order
  126 + });
  127 + });
  128 + this.orderId = [];
  129 + this.orderId = _order;
138 130 }
139   -
140   - if (this.clientBrowser == '支付宝') { // 支付宝支付
  131 + if (this.clientBrowser == "支付宝") { // 支付宝支付
141 132 var aliParams = {};
142 133 aliParams.orderId = this.orderId;
143 134 // aliParams.carNumber = this.carNumber;
... ... @@ -147,43 +138,39 @@ export default {
147 138 // aliParams.orgId = this.$utils.myOrgId,
148 139 // aliParams.backType = 2,
149 140 // aliParams.recordArreaInfos = JSON.stringify(this.orderId);
150   - console.log(aliParams)
  141 + console.log(aliParams);
151 142 aliPay(aliParams).then(response => {
152   - console.log(response)
  143 + console.log(response);
153 144 if (response.code == 0) {//进场
154 145 document.write(response.data);//打开支付表单
155 146 } else {//其他情况如【该卡号场内已存在】
156 147 console.log(response.message);
157 148 }
158   -
159   - })
  149 + });
160 150 }
161   -
162   - if (this.clientBrowser == '立即') { // 农行支付
  151 + if (this.clientBrowser == "立即") { // 农行支付
163 152 var bankabcParams = {};
164 153 bankabcParams.orderId = this.orderId;
165 154 bankabcParams.carNumber = this.carNumber;
166 155 bankabcParams.payType = 34;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号
167 156 bankabcParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付
168 157 bankabcParams.paySrcType = this.paySrcType;//101停车支付
169   - bankabcParams.orgId = this.$utils.myOrgId,
170   - bankabcParams.backType = 2,
171   - bankabcParams.PaymentLinkType = 1
  158 + bankabcParams.orgId = this.$utils.myOrgId;
  159 + bankabcParams.backType = 2;
  160 + bankabcParams.PaymentLinkType = 1;
172 161 bankabcParams.recordArreaInfos = JSON.stringify(this.orderId);
173   - console.log(bankabcParams)
174   -
  162 + console.log(bankabcParams);
175 163 bankH5Pay(bankabcParams).then(response => {
176   - console.log(response)
177   - if (response.code == '0') {
178   - let res = response.data.PaymentURL
179   - let _token = res.split('TOKEN=')[1]
180   - let OrderNo = response.data.OrderNo
181   - localStorage.setItem('OrderNum', OrderNo)
182   -
183   - if (window.navigator.userAgent.indexOf('Bankabc/Portal') > -1) {
  164 + console.log(response);
  165 + if (response.code == "0") {
  166 + let res = response.data.PaymentURL;
  167 + let _token = res.split("TOKEN=")[1];
  168 + let OrderNo = response.data.OrderNo;
  169 + localStorage.setItem("OrderNum", OrderNo);
  170 + if (window.navigator.userAgent.indexOf("Bankabc/Portal") > -1) {
184 171 // alert('当前页面在新容器');
185   - AlipayJSBridge.call('startApp', {
186   - appId: '30603024', // 固定值
  172 + AlipayJSBridge.call("startApp", {
  173 + appId: "30603024", // 固定值
187 174 param: {
188 175 type: "3", // 3: 掌银内H5页面,
189 176 tokenId: _token, //商户传过来的tokenId
... ... @@ -191,22 +178,19 @@ export default {
191 178 payType: "1111", //商户传过来的payType,没有则传'1111'
192 179 webviewURL: "https://wxgzh.renniting.cn/wechatwuxi/Chifeng/TEST/sweeping_payment/codepay/index.html#/payResult", //商户传过来的回跳地址
193 180 remark: "其他参数", //扩展备用
194   - showProgress: 'NO',
195   - backBehavior: 'back'
196   - },
197   - }, function (result) {
198   -
  181 + showProgress: "NO",
  182 + backBehavior: "back"
  183 + }
  184 + }, function(result) {
199 185 });
200 186 } else {
201 187 // alert('当前页面在旧容器');
202 188 // 旧支付方式
203   - window.location.href = 'https://www.abchina.com/luascript/mobilePayLua/' + encodeURI('{"return":{"tokenID":"' + _token + '","backURL":"https://wxgzh.renniting.cn/wechatwuxi/Chifeng/TEST/sweeping_payment/codepay/index.html#/payResult","payType":""}}');
204   -
  189 + window.location.href = "https://www.abchina.com/luascript/mobilePayLua/" + encodeURI("{\"return\":{\"tokenID\":\"" + _token + "\",\"backURL\":\"https://wxgzh.renniting.cn/wechatwuxi/Chifeng/TEST/sweeping_payment/codepay/index.html#/payResult\",\"payType\":\"\"}}");
205 190 }
206 191 } else {
207   - me.$msgbox('提示', '支付失败')
  192 + me.$msgbox("提示", "支付失败");
208 193 }
209   -
210 194 // console.log(_token)
211 195 // let _data = 'method=invokePayFromBrowser&tokenID='+_token
212 196 // let cryData = CryptoJS.encrypt(_data, 'G9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvM3', 'EkpTEA3FbZFGGq8Y')
... ... @@ -216,31 +200,28 @@ export default {
216 200 // window.location.href='bankabc:' + encodeURIComponent('{"method":"invokePayFromBrowser","param":'+baseCRY+'}')
217 201 // // 即为加密后的数据。其中paramsEncode是需要加密的数据、
218 202 // // keyStr是加密时使用的key,与服务端一致、hash是偏移量,是一个随机生成的16位字符串。
219   - })
  203 + });
220 204 }
221   -
222   - if (this.clientBrowser == '微信') { // 微信支付
  205 + if (this.clientBrowser == "微信") { // 微信支付
223 206 //第一步获取openid
224 207 var codeParams = {
225 208 code: this.webAppCode,
226   - appId: this.urlAppid
  209 + appId: this.urlAppid
227 210 };
228 211 getOpenId(codeParams).then(res => {
229 212 if (res.code == 0) {
230   - me.vxPay(res.data, this.orderId)
  213 + me.vxPay(res.data, this.orderId);
231 214 } else if (res.code == 40163) { //code been used, hints[重复code问题]
232   - me.$msgbox('提示', '请重新扫码code重复')
  215 + me.$msgbox("提示", "请重新扫码code重复");
233 216 console.log(res.message);
234 217 } else {
235   - me.$msgbox('提示', '请重新扫码')
  218 + me.$msgbox("提示", "请重新扫码");
236 219 }
237   - })
238   -
  220 + });
239 221 }
240   -
241 222 },
242 223 vxPay(openIdData, orderIdData) {
243   - let vm = this
  224 + let vm = this;
244 225 var wxParams = {};
245 226 wxParams.orderId = orderIdData;
246 227 // wxParams.backType = 2,
... ... @@ -251,37 +232,37 @@ export default {
251 232 // wxParams.paySrcType = this.paySrcType;//101停车支付
252 233 // wxParams.recordArreaInfos = JSON.stringify(orderIdData);
253 234 wxParams.openId = openIdData;
254   - wxParams.appId = this.urlAppid
  235 + wxParams.appId = this.urlAppid;
255 236 vxPayQuery(wxParams).then(res => {
256 237 if (res.code == 0) { //
257 238 if (res.data) {
258 239 var data = res.data;
259 240 console.log(JSON.stringify(data));
260   - if (typeof WeixinJSBridge === 'undefined') { // 微信浏览器内置对象。参考微信官方文档
  241 + if (typeof WeixinJSBridge === "undefined") { // 微信浏览器内置对象。参考微信官方文档
261 242 if (document.addEventListener) {
262   - document.addEventListener('WeixinJSBridgeReady', vm.onBridgeReady(data), false)
  243 + document.addEventListener("WeixinJSBridgeReady", vm.onBridgeReady(data), false);
263 244 } else if (document.attachEvent) {
264   - document.attachEvent('WeixinJSBridgeReady', vm.onBridgeReady(data))
265   - document.attachEvent('onWeixinJSBridgeReady', vm.onBridgeReady(data))
  245 + document.attachEvent("WeixinJSBridgeReady", vm.onBridgeReady(data));
  246 + document.attachEvent("onWeixinJSBridgeReady", vm.onBridgeReady(data));
266 247 }
267 248 } else {
268   - console.log('准备调用微信支付')
269   - vm.onBridgeReady(data)
  249 + console.log("准备调用微信支付");
  250 + vm.onBridgeReady(data);
270 251 }
271 252 } else {
272   - vm.$msgbox('提示', '没有找到返回值')
  253 + vm.$msgbox("提示", "没有找到返回值");
273 254 }
274 255 } else {
275 256 console.log(res.message);
276   - vm.$msgbox('提示', '支付失败')
  257 + vm.$msgbox("提示", "支付失败");
277 258 }
278   - })
  259 + });
279 260 },
280 261 onBridgeReady(params) {
281   - let me = this
282   - console.log('调用微信支付WeixinJSBridge')
  262 + let me = this;
  263 + console.log("调用微信支付WeixinJSBridge");
283 264 WeixinJSBridge.invoke(
284   - 'getBrandWCPayRequest', params,
  265 + "getBrandWCPayRequest", params,
285 266 //
286 267 // 'getBrandWCPayRequest', { // 下面参数内容都是后台返回的
287 268 // 'appId': data.appId, // 公众号名称,由商户传入
... ... @@ -291,22 +272,22 @@ export default {
291 272 // 'signType': data.signType, // 微信签名方式
292 273 // 'paySign': data.paySign // 微信签名
293 274 // },
294   - function (res) {
  275 + function(res) {
295 276 // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
296   - if (res.err_msg === 'get_brand_wcpay_request:ok') {
297   - console.log('成功')
298   - me.$msgbox('提示', '支付成功')
  277 + if (res.err_msg === "get_brand_wcpay_request:ok") {
  278 + console.log("成功");
  279 + me.$msgbox("提示", "支付成功");
299 280 } else {
300   - console.log('失败')
301   - me.$msgbox('提示', '支付失败')
  281 + console.log("失败");
  282 + me.$msgbox("提示", "支付失败");
302 283 me.$router.go(-2);
303 284 }
304 285 }
305   - )
306   - },
  286 + );
  287 + }
307 288 },
308 289 filters: {}
309   -}
  290 +};
310 291 </script>
311 292  
312 293 <style scoped lang="scss">
... ...
src/components/pay.vue
1 1 <template>
2 2 <div>
3 3 <div class="car-wrap">
4   - <div class="carBG carBlue" >
  4 + <div class="carBG carBlue">
5 5 <p class="carNumber">{{carNumber}}</p>
6 6 <p class="payFee">{{(orderFee/100).toFixed(2)}}元</p>
7 7 </div>
... ... @@ -37,7 +37,6 @@
37 37 </li>
38 38  
39 39  
40   -
41 40 <li>
42 41 <span>待缴金额</span>
43 42 <span>{{(orderFee/100).toFixed(2)}} 元</span>
... ... @@ -58,97 +57,91 @@
58 57 </div>
59 58  
60 59  
61   -
62 60 </div>
63 61 </template>
64 62  
65 63 <script>
66 64  
67   -let Base64 = require('js-base64').Base64
68   -
69   -import {aliPay, getOpenId, vxPayQuery, bankH5Pay} from '@/api/orderPay/orderPay'
70   -
  65 +let Base64 = require("js-base64").Base64;
  66 +import { aliPay, getOpenId, vxPayQuery, bankH5Pay } from "@/api/orderPay/orderPay";
71 67 export default {
72   - name: 'dynCodePay',
  68 + name: "dynCodePay",
73 69 data() {
74 70 return {
75 71 carWrapBG: 0,
76   - carNumber: '', // 车牌
77   - parkName: '', // 停车场名称
78   - inparktime: '', // 入场时间
79   - outtime: '', // 出场时间
80   - staytime: '', // 停车时长
81   - orderFee: '', // 需要支付的费用
82   - due: '', // 总金额
83   - discountFee: '', // 优惠金额
  72 + carNumber: "", // 车牌
  73 + parkName: "", // 停车场名称
  74 + inparktime: "", // 入场时间
  75 + outtime: "", // 出场时间
  76 + staytime: "", // 停车时长
  77 + orderFee: "", // 需要支付的费用
  78 + due: "", // 总金额
  79 + discountFee: "", // 优惠金额
84 80 arrearageActFee: 0,
85 81 arrearageDiscFee: 0,
86 82 arrearageActFee: 0,
87   - clientBrowser: '', // 客户端
  83 + clientBrowser: "", // 客户端
88 84 paySrcType: 101, //支付的类型 101 是本次 103是历史欠费
89   - orderId: '', //支付的订单
90   - webAppCode: '', // 微信code
91   - appOrderTimeout: '', // 超时描述
92   - }
  85 + orderId: "", //支付的订单
  86 + webAppCode: "", // 微信code
  87 + appOrderTimeout: "" // 超时描述
  88 + };
93 89 },
94 90 created() {
95 91 // this.carWrapBG = this.$route.query.carColor //车牌颜色
96   - this.carNumber = this.$route.query.plateno
97   - this.parkName = this.$route.query.parkName
98   - this.inparktime = this.$route.query.inparktime
99   - this.outtime = this.$route.query.outtime
100   - this.staytime = this.$route.query.staytime
101   - this.orderFee = this.$route.query.orderFee
102   - this.due = this.$route.query.due
103   - this.discountFee = this.$route.query.discountFee
  92 + this.carNumber = this.$route.query.plateno;
  93 + this.parkName = this.$route.query.parkName;
  94 + this.inparktime = this.$route.query.inparktime;
  95 + this.outtime = this.$route.query.outtime;
  96 + this.staytime = this.$route.query.staytime;
  97 + this.orderFee = this.$route.query.orderFee;
  98 + this.due = this.$route.query.due;
  99 + this.discountFee = this.$route.query.discountFee;
104 100 // this.arrearageTotalFee = this.$route.query.arrearageTotalFee // 应收
105 101 // this.arrearageDiscFee = this.$route.query.arrearageDiscFee // 优惠
106 102 // this.arrearageActFee = this.$route.query.arrearageActFee // 实收
107   - this.clientBrowser = this.$utils.clientBrowser() //支付方式
  103 + this.clientBrowser = this.$utils.clientBrowser(); //支付方式
108 104 // this.paySrcType = this.$route.query.codeType // 实收
109   - this.orderId = this.$route.query.orderId
  105 + this.orderId = this.$route.query.orderId;
110 106 // console.log(this.orderId)
111 107 // this.appOrderTimeout = this.$route.query.appOrderTimeout
112 108 if (this.clientBrowser == "微信") {
113 109 this.webAppCode = this.getCode();
114 110 }
115   -
116 111 },
117 112 methods: {
118 113 getCode() {
119 114 var appID = this.$utils.myVxAppId;
120 115 // alert(appID)
121   - var code = this.getUrlParam('code');
  116 + var code = this.getUrlParam("code");
122 117 var local = window.location.href;
123   - if (code == null || code === '') {
124   - window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + appID + '&redirect_uri=' + encodeURIComponent(local) + '&response_type=code&scope=snsapi_base&state=1#wechat_redirect'
  118 + if (code == null || code === "") {
  119 + window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appID + "&redirect_uri=" + encodeURIComponent(local) + "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
125 120 } else {
126 121 return code;
127 122 }
128 123 },
129 124 getUrlParam(name) {
130   - var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
131   - var r = window.location.search.substr(1).match(reg)
132   - if (r != null) return unescape(r[2])
133   - return null
  125 + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  126 + var r = window.location.search.substr(1).match(reg);
  127 + if (r != null) return unescape(r[2]);
  128 + return null;
134 129 },
135 130 toPay() {
136   - let me = this
137   - let _order = []
138   -
139   - console.log(this.orderId)
  131 + let me = this;
  132 + let _order = [];
  133 + console.log(this.orderId);
140 134 if (this.paySrcType == 103) {
141   - this.orderId = JSON.parse(this.orderId)
  135 + this.orderId = JSON.parse(this.orderId);
142 136 this.orderId.forEach(item => {
143 137 _order.push({
144 138 orderId: item
145   - })
146   - })
147   - this.orderId = []
148   - this.orderId = _order
  139 + });
  140 + });
  141 + this.orderId = [];
  142 + this.orderId = _order;
149 143 }
150   -
151   - if (this.clientBrowser == '支付宝') { // 支付宝支付
  144 + if (this.clientBrowser == "支付宝") { // 支付宝支付
152 145 var aliParams = {};
153 146 aliParams.orderId = this.orderId;
154 147 // aliParams.carNumber = this.carNumber;
... ... @@ -158,42 +151,39 @@ export default {
158 151 // aliParams.orgId = this.$utils.myOrgId,
159 152 // aliParams.backType = 2,
160 153 // aliParams.recordArreaInfos = JSON.stringify(this.orderId);
161   - console.log(aliParams)
  154 + console.log(aliParams);
162 155 aliPay(aliParams).then(response => {
163   - console.log(response)
  156 + console.log(response);
164 157 if (response.code == 0) {//进场
165 158 document.write(response.data);//打开支付表单
166 159 } else {//其他情况如【该卡号场内已存在】
167 160 console.log(response.message);
168 161 }
169   -
170   - })
  162 + });
171 163 }
172   -
173   - if (this.clientBrowser == '立即') { // 农行支付
  164 + if (this.clientBrowser == "立即") { // 农行支付
174 165 var bankabcParams = {};
175 166 bankabcParams.orderId = this.orderId;
176 167 bankabcParams.carNumber = this.carNumber;
177 168 bankabcParams.payType = 34;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号
178 169 bankabcParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付
179 170 bankabcParams.paySrcType = this.paySrcType;//101停车支付
180   - bankabcParams.orgId = this.$utils.myOrgId,
181   - bankabcParams.backType = 2,
182   - bankabcParams.PaymentLinkType = 1
  171 + bankabcParams.orgId = this.$utils.myOrgId;
  172 + bankabcParams.backType = 2;
  173 + bankabcParams.PaymentLinkType = 1;
183 174 bankabcParams.recordArreaInfos = JSON.stringify(this.orderId);
184   - console.log(bankabcParams)
  175 + console.log(bankabcParams);
185 176 bankH5Pay(bankabcParams).then(response => {
186   - console.log(response)
187   - if (response.code == '0') {
188   - let res = response.data.PaymentURL
189   - let _token = res.split('TOKEN=')[1]
190   - let OrderNo = response.data.OrderNo
191   - localStorage.setItem('OrderNum', OrderNo)
192   -
193   - if (window.navigator.userAgent.indexOf('Bankabc/Portal') > -1) {
  177 + console.log(response);
  178 + if (response.code == "0") {
  179 + let res = response.data.PaymentURL;
  180 + let _token = res.split("TOKEN=")[1];
  181 + let OrderNo = response.data.OrderNo;
  182 + localStorage.setItem("OrderNum", OrderNo);
  183 + if (window.navigator.userAgent.indexOf("Bankabc/Portal") > -1) {
194 184 // alert('当前页面在新容器');
195   - AlipayJSBridge.call('startApp', {
196   - appId: '30603024', // 固定值
  185 + AlipayJSBridge.call("startApp", {
  186 + appId: "30603024", // 固定值
197 187 param: {
198 188 type: "3", // 3: 掌银内H5页面,
199 189 tokenId: _token, //商户传过来的tokenId
... ... @@ -201,22 +191,19 @@ export default {
201 191 payType: "1111", //商户传过来的payType,没有则传'1111'
202 192 webviewURL: "https://wxgzh.renniting.cn/wechatwuxi/Chifeng/TEST/sweeping_payment/codepay/index.html#/payResult", //商户传过来的回跳地址
203 193 remark: "其他参数", //扩展备用
204   - showProgress: 'NO',
205   - backBehavior: 'back'
206   - },
207   - }, function (result) {
208   -
  194 + showProgress: "NO",
  195 + backBehavior: "back"
  196 + }
  197 + }, function(result) {
209 198 });
210 199 } else {
211 200 // alert('当前页面在旧容器');
212 201 // 旧支付方式
213   - window.location.href = 'https://www.abchina.com/luascript/mobilePayLua/' + encodeURI('{"return":{"tokenID":"' + _token + '","backURL":"https://wxgzh.renniting.cn/wechatwuxi/Chifeng/TEST/sweeping_payment/codepay/index.html#/payResult","payType":""}}');
214   -
  202 + window.location.href = "https://www.abchina.com/luascript/mobilePayLua/" + encodeURI("{\"return\":{\"tokenID\":\"" + _token + "\",\"backURL\":\"https://wxgzh.renniting.cn/wechatwuxi/Chifeng/TEST/sweeping_payment/codepay/index.html#/payResult\",\"payType\":\"\"}}");
215 203 }
216 204 } else {
217   - me.$msgbox('提示', '支付失败')
  205 + me.$msgbox("提示", "支付失败");
218 206 }
219   -
220 207 // console.log(_token)
221 208 // let _data = 'method=invokePayFromBrowser&tokenID='+_token
222 209 // let cryData = CryptoJS.encrypt(_data, 'G9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvM3', 'EkpTEA3FbZFGGq8Y')
... ... @@ -226,10 +213,9 @@ export default {
226 213 // window.location.href='bankabc:' + encodeURIComponent('{"method":"invokePayFromBrowser","param":'+baseCRY+'}')
227 214 // // 即为加密后的数据。其中paramsEncode是需要加密的数据、
228 215 // // keyStr是加密时使用的key,与服务端一致、hash是偏移量,是一个随机生成的16位字符串。
229   - })
  216 + });
230 217 }
231   -
232   - if (this.clientBrowser == '微信') { // 微信支付
  218 + if (this.clientBrowser == "微信") { // 微信支付
233 219 //第一步获取openid
234 220 var codeParams = {
235 221 code: this.webAppCode,
... ... @@ -237,20 +223,18 @@ export default {
237 223 };
238 224 getOpenId(codeParams).then(res => {
239 225 if (res.code == 0) {
240   - me.vxPay(res.data, this.orderId)
  226 + me.vxPay(res.data, this.orderId);
241 227 } else if (res.code == 40163) { //code been used, hints[重复code问题]
242   - me.$msgbox('提示', '请重新扫码')
  228 + me.$msgbox("提示", "请重新扫码");
243 229 console.log(res.message);
244 230 } else {
245   - me.$msgbox('提示', '请重新扫码')
  231 + me.$msgbox("提示", "请重新扫码");
246 232 }
247   - })
248   -
  233 + });
249 234 }
250   -
251 235 },
252 236 vxPay(openIdData, orderIdData) {
253   - let vm = this
  237 + let vm = this;
254 238 var wxParams = {};
255 239 wxParams.orderId = orderIdData;
256 240 // wxParams.backType = 2,
... ... @@ -267,31 +251,31 @@ export default {
267 251 if (res.data) {
268 252 var data = res.data;
269 253 console.log(JSON.stringify(data));
270   - if (typeof WeixinJSBridge === 'undefined') { // 微信浏览器内置对象。参考微信官方文档
  254 + if (typeof WeixinJSBridge === "undefined") { // 微信浏览器内置对象。参考微信官方文档
271 255 if (document.addEventListener) {
272   - document.addEventListener('WeixinJSBridgeReady', vm.onBridgeReady(data), false)
  256 + document.addEventListener("WeixinJSBridgeReady", vm.onBridgeReady(data), false);
273 257 } else if (document.attachEvent) {
274   - document.attachEvent('WeixinJSBridgeReady', vm.onBridgeReady(data))
275   - document.attachEvent('onWeixinJSBridgeReady', vm.onBridgeReady(data))
  258 + document.attachEvent("WeixinJSBridgeReady", vm.onBridgeReady(data));
  259 + document.attachEvent("onWeixinJSBridgeReady", vm.onBridgeReady(data));
276 260 }
277 261 } else {
278   - console.log('准备调用微信支付')
279   - vm.onBridgeReady(data)
  262 + console.log("准备调用微信支付");
  263 + vm.onBridgeReady(data);
280 264 }
281 265 } else {
282   - vm.$msgbox('提示', '没有找到返回值')
  266 + vm.$msgbox("提示", "没有找到返回值");
283 267 }
284 268 } else {
285 269 console.log(res.message);
286   - vm.$msgbox('提示', res.message)
  270 + vm.$msgbox("提示", res.message);
287 271 }
288   - })
  272 + });
289 273 },
290 274 onBridgeReady(params) {
291   - let me = this
292   - console.log('调用微信支付WeixinJSBridge')
  275 + let me = this;
  276 + console.log("调用微信支付WeixinJSBridge");
293 277 WeixinJSBridge.invoke(
294   - 'getBrandWCPayRequest', params,
  278 + "getBrandWCPayRequest", params,
295 279 //
296 280 // 'getBrandWCPayRequest', { // 下面参数内容都是后台返回的
297 281 // 'appId': data.appId, // 公众号名称,由商户传入
... ... @@ -301,23 +285,22 @@ export default {
301 285 // 'signType': data.signType, // 微信签名方式
302 286 // 'paySign': data.paySign // 微信签名
303 287 // },
304   - function (res) {
  288 + function(res) {
305 289 // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
306   - if (res.err_msg === 'get_brand_wcpay_request:ok') {
307   - console.log('成功')
308   - me.$msgbox('提示', '支付成功')
309   -
  290 + if (res.err_msg === "get_brand_wcpay_request:ok") {
  291 + console.log("成功");
  292 + me.$msgbox("提示", "支付成功");
310 293 } else {
311   - console.log('失败')
312   - me.$msgbox('提示', '支付失败')
  294 + console.log("失败");
  295 + me.$msgbox("提示", "支付失败");
313 296 me.$router.go(-2);
314 297 }
315 298 }
316   - )
317   - },
  299 + );
  300 + }
318 301 },
319 302 filters: {}
320   -}
  303 +};
321 304 </script>
322 305  
323 306 <style scoped lang="scss">
... ...