Commit afc9e30844b316d27571dae74dca7e0e8fbc7d2f

Authored by liuqimichale
1 parent 5101e102

银联支付

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 = &quot;/keyTopQrCodeInOutPark/useCouponQueryFee&quot;;
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';
... ...