Commit afc9e30844b316d27571dae74dca7e0e8fbc7d2f
1 parent
5101e102
银联支付
Showing
5 changed files
with
155 additions
and
91 deletions
home.html
... | ... | @@ -82,10 +82,10 @@ |
82 | 82 | |
83 | 83 | |
84 | 84 | <script src="js/jquery-3.2.1.min.js"></script> |
85 | -<script src="js/config.js?v=0.1"></script> | |
86 | -<script src="js/common.js?v=1.11"></script> | |
85 | +<script src="js/config.js?c=1.1"></script> | |
86 | +<script src="js/common.js?b=2.11"></script> | |
87 | 87 | <!--<script src="js/jweixin-1.0.0.js?v=0.1"></script>--> |
88 | -<script src="js/pay.js?v=1.5120"></script> | |
88 | +<script src="js/pay.js?i=2.20"></script> | |
89 | 89 | </body> |
90 | 90 | |
91 | 91 | </html> | ... | ... |
js/common.js
... | ... | @@ -73,7 +73,7 @@ function convertData(data) { |
73 | 73 | // "id": "456" |
74 | 74 | // }, |
75 | 75 | // beforeSend: function () { |
76 | -// //some js code | |
76 | +// //some js code | |
77 | 77 | // }, |
78 | 78 | // success: function (msg) { |
79 | 79 | // console.log(msg) |
... | ... | @@ -91,7 +91,7 @@ function postRequest(url,params,successCallback, errorCallback) { |
91 | 91 | dataType: "json", |
92 | 92 | data: JSON.stringify(params), |
93 | 93 | beforeSend: function () { |
94 | - //some js code | |
94 | + //some js code | |
95 | 95 | }, |
96 | 96 | success: function (msg) { |
97 | 97 | successCallback(msg); |
... | ... | @@ -111,7 +111,7 @@ function postRequest(url,params,successCallback, errorCallback) { |
111 | 111 | |
112 | 112 | /*获取URL?参数*/ |
113 | 113 | function getQueryString(location) { |
114 | - //var url = location.search; //获取url中"?"符后的字串 | |
114 | + //var url = location.search; //获取url中"?"符后的字串 | |
115 | 115 | var url = location.search; |
116 | 116 | var theRequest = new Object(); |
117 | 117 | if (url.indexOf("?") != -1) { |
... | ... | @@ -163,19 +163,19 @@ function keepTwoDecimalFull(num) { |
163 | 163 | return s_x; |
164 | 164 | } |
165 | 165 | |
166 | -/** | |
167 | - * param 将要转为URL参数字符串的对象 | |
168 | - * key URL参数字符串的前缀 | |
169 | - * encode true/false 是否进行URL编码,默认为true | |
170 | - * | |
171 | - * return URL参数字符串 | |
166 | +/** | |
167 | + * param 将要转为URL参数字符串的对象 | |
168 | + * key URL参数字符串的前缀 | |
169 | + * encode true/false 是否进行URL编码,默认为true | |
170 | + * | |
171 | + * return URL参数字符串 | |
172 | 172 | */ |
173 | 173 | var parseParams = function (data) { |
174 | 174 | try { |
175 | 175 | var tempArr = []; |
176 | 176 | for (var i in data) { |
177 | 177 | var key = (i); |
178 | - var value = encodeURIComponent(data[i]);//decodeURIComponent | |
178 | + var value = encodeURIComponent(data[i]);//decodeURIComponent | |
179 | 179 | tempArr.push(key + '=' + value); |
180 | 180 | } |
181 | 181 | var urlParamsStr = tempArr.join('&'); |
... | ... | @@ -285,4 +285,44 @@ function funcUrlDel(name) { |
285 | 285 | return loca.href; |
286 | 286 | } |
287 | 287 | } |
288 | +var userAgent = navigator.userAgent; | |
289 | +var isAndroid = userAgent.indexOf('Android') > -1 || userAgent.indexOf('Adr') > -1; //android终端 | |
290 | + | |
291 | +function utilParams(val,orderID,openId) { | |
292 | + var _orderTotalFee = Number($('#due').text())*100 //总金额 | |
293 | + var fee = $('#discountFee').text() | |
294 | + var _fee = fee.substring(0, fee.length - 1); | |
295 | + var _orderDicountFee = Number(_fee)*100 //优惠了多少钱 | |
296 | + var _orderActFee = _orderTotalFee - _orderDicountFee //实收多少钱 | |
297 | + var jsondata; | |
298 | + if(_orderDicountFee > 0){ | |
299 | + jsondata = { | |
300 | + orderBigType:100, | |
301 | + payOrderType:101, | |
302 | + rltOrderId:orderID, | |
303 | + payType:val, | |
304 | + terminalSource:7, | |
305 | + orderActFee:_orderActFee, | |
306 | + orderTotalFee:_orderTotalFee, | |
307 | + orderDicountFee:_orderDicountFee, | |
308 | + payUserId:openId, | |
309 | + terminalOS:isAndroid?'AND':'IOS', | |
310 | + couponType:1, //优惠类型 | |
311 | + couponCode:$('#discountBox').val(), | |
312 | + }; | |
313 | + }else{ | |
314 | + jsondata = { | |
315 | + orderBigType:100, | |
316 | + payOrderType:101, | |
317 | + rltOrderId:orderID, | |
318 | + payType:val, | |
319 | + terminalSource:7, | |
320 | + orderActFee:_orderActFee, | |
321 | + orderTotalFee:_orderTotalFee, | |
322 | + payUserId:openId, | |
323 | + terminalOS:isAndroid?'AND':'IOS', | |
324 | + }; | |
325 | + } | |
326 | + return jsondata | |
327 | +} | |
288 | 328 | ... | ... |
js/config.js
... | ... | @@ -7,9 +7,9 @@ window.webAppH5 = {}; |
7 | 7 | |
8 | 8 | |
9 | 9 | /*服务器地址*/ |
10 | -var webAppRoot = "http://pay.service.huangshiparking.com"; | |
10 | +// var webAppRoot = "http://pay.service.huangshiparking.com"; | |
11 | 11 | //test 测试环境 |
12 | -// var webAppRoot = "http://39.98.54.240:8090"; | |
12 | +var webAppRoot = "http://39.98.54.240:8090"; | |
13 | 13 | //微信支付结果回调地址 |
14 | 14 | var webAppPayResult = "http://wxgzh.huangshiparking.com/HSwechat/PDA-Payment/wxpayResult.html"; |
15 | 15 | |
... | ... | @@ -50,6 +50,10 @@ webAppH5.useCouponQueryFee = "/keyTopQrCodeInOutPark/useCouponQueryFee"; |
50 | 50 | webAppH5.zeroPayServer = "/appAccountPay/zeroPay"; |
51 | 51 | |
52 | 52 | |
53 | +// 新接口银联 | |
54 | +webAppH5.doPay = "/unionpay/doPay"; | |
55 | + | |
56 | + | |
53 | 57 | |
54 | 58 | |
55 | 59 | ... | ... |
js/pay.js
1 | -/* | |
2 | -@songcxa | |
3 | -@2018-12-14 | |
4 | -@移动支付 | |
5 | -*/ | |
1 | + | |
6 | 2 | var webAppParams = null; |
7 | 3 | var $btnObj = null; |
8 | 4 | var $btnLoad = null; |
... | ... | @@ -298,21 +294,24 @@ var webAppClass = { |
298 | 294 | console.log("aliPay"); |
299 | 295 | //订单号 |
300 | 296 | var obj = {}; |
297 | + | |
298 | + var aliPay = webAppH5.doPay; | |
299 | + | |
301 | 300 | //this.payAjax(url, { orderId: "11111", price: 0.01 }); |
302 | - var aliPay = webAppH5.aliPayServer; | |
303 | - var aliParams = webAppH5.comParams; | |
304 | - aliParams.orderId = orderID; | |
305 | - aliParams.carNumber = getQueryString(window.location).carnum; | |
306 | - aliParams.payType = 1;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | |
307 | - aliParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | |
308 | - aliParams.paySrcType = getQueryString(window.location)._paySrcType;//101停车支付 | |
309 | - | |
310 | - aliParams.recordArreaInfos = JSON.stringify([{ | |
311 | - "orderId": webAppParams.orderId, | |
312 | - "orderNotPayFee": _mon * 100, | |
313 | - "parkId": getQueryString(window.location).parkCode | |
314 | - }]); | |
315 | - webAppClass.payAliAjax(root + aliPay, aliParams); | |
301 | + // var aliPay = webAppH5.aliPayServer; | |
302 | + // var aliParams = webAppH5.comParams; | |
303 | + // aliParams.orderId = orderID; | |
304 | + // aliParams.carNumber = getQueryString(window.location).carnum; | |
305 | + // aliParams.payType = 1;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | |
306 | + // aliParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | |
307 | + // aliParams.paySrcType = getQueryString(window.location)._paySrcType;//101停车支付 | |
308 | + // | |
309 | + // aliParams.recordArreaInfos = JSON.stringify([{ | |
310 | + // "orderId": webAppParams.orderId, | |
311 | + // "orderNotPayFee": _mon * 100, | |
312 | + // "parkId": getQueryString(window.location).parkCode | |
313 | + // }]); | |
314 | + webAppClass.payAliAjax(root + aliPay, utilParams(1,orderID,'')); | |
316 | 315 | break; |
317 | 316 | default://第三方浏览器other |
318 | 317 | //默认支付宝 |
... | ... | @@ -321,21 +320,22 @@ var webAppClass = { |
321 | 320 | //订单号 |
322 | 321 | var obj = {}; |
323 | 322 | //this.payAjax(url, { orderId: "11111", price: 0.01 }); |
324 | - var aliPay = webAppH5.aliPayServer; | |
325 | - var aliParams = webAppH5.comParams; | |
326 | - aliParams.orderId = orderID; | |
327 | - aliParams.carNumber = getQueryString(window.location).carnum; | |
328 | - aliParams.payType = 1;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | |
329 | - aliParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | |
330 | - aliParams.paySrcType = getQueryString(window.location)._paySrcType;//101停车支付 | |
331 | - | |
332 | - aliParams.recordArreaInfos = JSON.stringify([{ | |
333 | - "orderId": webAppParams.orderId, | |
334 | - "orderNotPayFee": _mon * 100, | |
335 | - "parkId": getQueryString(window.location).parkCode | |
336 | - }]); | |
337 | - | |
338 | - webAppClass.payAliAjax(root + aliPay, aliParams); | |
323 | + var aliPay = webAppH5.doPay; | |
324 | + // var aliParams = webAppH5.comParams; | |
325 | + // aliParams.orderId = orderID; | |
326 | + // aliParams.carNumber = getQueryString(window.location).carnum; | |
327 | + // aliParams.payType = 1;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | |
328 | + // aliParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | |
329 | + // aliParams.paySrcType = getQueryString(window.location)._paySrcType;//101停车支付 | |
330 | + // | |
331 | + // aliParams.recordArreaInfos = JSON.stringify([{ | |
332 | + // "orderId": webAppParams.orderId, | |
333 | + // "orderNotPayFee": _mon * 100, | |
334 | + // "parkId": getQueryString(window.location).parkCode | |
335 | + // }]); | |
336 | + | |
337 | + //webAppClass.payAliAjax(root + aliPay, aliParams); | |
338 | + webAppClass.payAliAjax(root + aliPay, utilParams(1,orderID,'')); | |
339 | 339 | } else {//微信页面支付 |
340 | 340 | var url = " https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096"; |
341 | 341 | //window.location.href = url; |
... | ... | @@ -502,36 +502,45 @@ var webAppClass = { |
502 | 502 | //} |
503 | 503 | }, |
504 | 504 | getPayParams: function (openId, orderID) { |
505 | - var wxPay = window.webAppH5.wxPayServer; | |
506 | - var wxParams = window.webAppH5.comParams; | |
507 | - var _mon = document.getElementById("sumMoney").innerHTML | |
508 | - wxParams.orderId = orderID; | |
509 | - wxParams.payType = 4;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | |
510 | - wxParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | |
511 | - //webAppClass.payAjax(root + wxPay, wxParams); | |
512 | - | |
513 | - | |
514 | - //新增start | |
505 | + // var wxPay = window.webAppH5.wxPayServer; | |
506 | + // var wxParams = window.webAppH5.comParams; | |
507 | + // var _mon = document.getElementById("sumMoney").innerHTML | |
508 | + // wxParams.orderId = orderID; | |
509 | + // wxParams.payType = 4;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | |
510 | + // wxParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | |
511 | + // //webAppClass.payAjax(root + wxPay, wxParams); | |
512 | + // | |
513 | + // | |
514 | + // //新增start | |
515 | + // | |
516 | + // | |
517 | + // wxParams.carNumber = getQueryString(window.location).carnum; | |
518 | + // | |
519 | + // wxParams.paySrcType = getQueryString(window.location)._paySrcType;//101停车支付 | |
520 | + // | |
521 | + // wxParams.recordArreaInfos = JSON.stringify([{ | |
522 | + // "orderId": webAppParams.orderId, | |
523 | + // "orderNotPayFee": _mon * 100, | |
524 | + // "parkId": getQueryString(window.location).parkCode | |
525 | + // }]); | |
526 | + // | |
527 | + // //新增end | |
528 | + // | |
529 | + // | |
530 | + // wxParams.openId = openId; | |
531 | + // wxParams.appId = appWxID; | |
532 | + // var payParamsUrl = webAppRoot + window.webAppH5.wxPayServer; | |
533 | + | |
534 | + | |
535 | + | |
536 | + var jsondata = utilParams(2,orderID,openId); | |
537 | + | |
538 | + | |
539 | + | |
540 | + var payParamsUrl = webAppRoot + window.webAppH5.doPay; | |
515 | 541 | |
516 | - | |
517 | - wxParams.carNumber = getQueryString(window.location).carnum; | |
518 | - | |
519 | - wxParams.paySrcType = getQueryString(window.location)._paySrcType;//101停车支付 | |
520 | - | |
521 | - wxParams.recordArreaInfos = JSON.stringify([{ | |
522 | - "orderId": webAppParams.orderId, | |
523 | - "orderNotPayFee": _mon * 100, | |
524 | - "parkId": getQueryString(window.location).parkCode | |
525 | - }]); | |
526 | - | |
527 | - //新增end | |
528 | - | |
529 | - | |
530 | - wxParams.openId = openId; | |
531 | - wxParams.appId = appWxID; | |
532 | - var payParamsUrl = webAppRoot + window.webAppH5.wxPayServer; | |
533 | 542 | //alert(payParamsUrl);alert(orderID); |
534 | - postRequest(payParamsUrl, wxParams, function (res) { | |
543 | + postRequest(payParamsUrl, jsondata, function (res) { | |
535 | 544 | $btnObj.style.display = "block"; |
536 | 545 | $btnLoad.style.display = "none"; |
537 | 546 | //debugger; |
... | ... | @@ -539,7 +548,7 @@ var webAppClass = { |
539 | 548 | //alertMsg("出场成功"); |
540 | 549 | if (res.data) { |
541 | 550 | var tmpObj = res.data; |
542 | - webAppClass.weixinJSBridge(res.data); | |
551 | + webAppClass.weixinJSBridge(tmpObj); | |
543 | 552 | console.log(JSON.stringify(tmpObj)); |
544 | 553 | //alert(JSON.stringify(tmpObj)); |
545 | 554 | } else { |
... | ... | @@ -560,18 +569,26 @@ var webAppClass = { |
560 | 569 | }, |
561 | 570 | |
562 | 571 | //调用微信内置WeixinJSBridge对象发起支付 |
563 | - weixinJSBridge: function (params) { | |
572 | + weixinJSBridge: function (data) { | |
573 | + var datas = JSON.parse(data.jsPayRequest); | |
574 | + //datas = JSON.parse(datas); | |
575 | + var timeStamp = datas.timeStamp; | |
576 | + var appId = datas.appId; | |
577 | + var nonceStr = datas.nonceStr; | |
578 | + var package = datas.package; | |
579 | + var paySign = datas.paySign; | |
580 | + var type = datas.signType; | |
581 | + | |
564 | 582 | function onBridgeReady() { |
565 | 583 | WeixinJSBridge.invoke( |
566 | - 'getBrandWCPayRequest', params, | |
567 | - //'getBrandWCPayRequest', { | |
568 | - // "appId": appWxID, //公众号名称,由商户传入 | |
569 | - // "timeStamp": "1395712654", //时间戳,自1970年以来的秒数 | |
570 | - // "nonceStr": "e61463f8efa94090b1f366cccfbbb444", //随机串 | |
571 | - // "package": "prepay_id=u802345jgfjsdfgsdg888", | |
572 | - // "signType": "MD5", //微信签名方式: | |
573 | - // "paySign": "70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名 | |
574 | - //}, | |
584 | + 'getBrandWCPayRequest', { | |
585 | + "appId":appId, //公众号名称,由商户传入 | |
586 | + "timeStamp":timeStamp, //时间戳,自1970年以来的秒数 | |
587 | + "nonceStr":nonceStr, //随机串 | |
588 | + "package":package, | |
589 | + "signType":type, //微信签名方式: | |
590 | + "paySign":paySign //微信签名 | |
591 | + }, | |
575 | 592 | function (res) { |
576 | 593 | //alert(res.err_msg); |
577 | 594 | if (res.err_msg == "get_brand_wcpay_request:ok") { |
... | ... | @@ -612,12 +629,14 @@ var webAppClass = { |
612 | 629 | |
613 | 630 | //异步请求-支付宝 |
614 | 631 | payAliAjax: function (url, params) { |
632 | + | |
615 | 633 | var btnOBj = $btnObj; |
616 | 634 | postRequest(url, params, function (res) { |
617 | 635 | btnOBj.style.display = "block"; |
618 | 636 | $btnLoad.style.display = "none"; |
619 | 637 | if (res.code == 0) {//进场 |
620 | - document.write(res.data);//打开支付表单 | |
638 | + window.location.href = res.data.h5PayRequest | |
639 | + //document.write(res.data.h5PayRequest);//打开支付表单 | |
621 | 640 | } else {//其他情况如【该卡号场内已存在】 |
622 | 641 | console.log(res.message); |
623 | 642 | alertMsg(res.message); |
... | ... | @@ -664,6 +683,7 @@ var webAppClass = { |
664 | 683 | $due.innerHTML = keepTwoDecimalFull((params.due / 100));//停车总费用 |
665 | 684 | $paid.innerHTML = keepTwoDecimalFull(params.paid / 100); |
666 | 685 | $discountFee.innerHTML = params.discountFee;//优惠金额 |
686 | + | |
667 | 687 | // $discountDesc.innerHTML = params.discountDesc; |
668 | 688 | } else { |
669 | 689 | console.log("没有接受到参数"); | ... | ... |
js/url.js
... | ... | @@ -89,9 +89,9 @@ mUrl.getJx = function(){ |
89 | 89 | |
90 | 90 | // var cepath = 'http://39.98.54.240:8090'; |
91 | 91 | |
92 | -var cepath = 'http://pay.service.huangshiparking.com'; | |
92 | +// var cepath = 'http://pay.service.huangshiparking.com'; | |
93 | 93 | // http://pay.service.renniting.cn |
94 | -// var cepath = 'http://39.98.54.240:8090' | |
94 | +var cepath = 'http://39.98.54.240:8090' | |
95 | 95 | // http://app.api.dyszt.com:8090 |
96 | 96 | // var cepath = 'http://app.api.dyszt.com:8090'; |
97 | 97 | // https://pay.service.rnting.com//'http://47.96.41.38:8090'; | ... | ... |