Commit dbd86cb20e35fda390901d676d9dadec5741f124
1 parent
a79a8c53
add 0元支付功能
Showing
7 changed files
with
218 additions
and
55 deletions
billCodePay.html
| @@ -68,6 +68,19 @@ | @@ -68,6 +68,19 @@ | ||
| 68 | font-size: 14px; | 68 | font-size: 14px; |
| 69 | color: #EB453B; | 69 | color: #EB453B; |
| 70 | } | 70 | } |
| 71 | + .paySuccess{ | ||
| 72 | + width: 100%; | ||
| 73 | + height: 100%; | ||
| 74 | + text-align: center; | ||
| 75 | + line-height: 100px; | ||
| 76 | + font-size: 20px; | ||
| 77 | + color: #fff; | ||
| 78 | + background: rgba(0,0,0,.7); | ||
| 79 | + position: fixed; | ||
| 80 | + top:0; | ||
| 81 | + left: 0; | ||
| 82 | + display: none; | ||
| 83 | + } | ||
| 71 | </style> | 84 | </style> |
| 72 | </head> | 85 | </head> |
| 73 | <body> | 86 | <body> |
| @@ -130,7 +143,7 @@ | @@ -130,7 +143,7 @@ | ||
| 130 | <img src="img/loading.gif" id="loading" style="display: none;" /> | 143 | <img src="img/loading.gif" id="loading" style="display: none;" /> |
| 131 | </footer> | 144 | </footer> |
| 132 | <section id="payTip" style="padding: 5px;margin-top:5px; color: #3385ff; font-size: 14px; "></section> | 145 | <section id="payTip" style="padding: 5px;margin-top:5px; color: #3385ff; font-size: 14px; "></section> |
| 133 | - | 146 | + <div class="paySuccess" id="paySuccess">支付成功,请立即离场</div> |
| 134 | <!-- | 147 | <!-- |
| 135 | This HTML file is a template. | 148 | This HTML file is a template. |
| 136 | If you open it directly in the browser, you will see an empty page. | 149 | If you open it directly in the browser, you will see an empty page. |
config.js
| @@ -48,6 +48,9 @@ webAppH5.aliPayServer = "/alipay/aliH5Pay"; | @@ -48,6 +48,9 @@ webAppH5.aliPayServer = "/alipay/aliH5Pay"; | ||
| 48 | //h5-支付兑换优惠券 | 48 | //h5-支付兑换优惠券 |
| 49 | webAppH5.useCouponQueryFee = "/keyTopQrCodeInOutPark/useCouponQueryFee"; | 49 | webAppH5.useCouponQueryFee = "/keyTopQrCodeInOutPark/useCouponQueryFee"; |
| 50 | 50 | ||
| 51 | +/*0元支付*/ | ||
| 52 | +webAppH5.zeroPayServer = "/appAccountPay/zeroPay"; | ||
| 53 | + | ||
| 51 | 54 | ||
| 52 | 55 | ||
| 53 | 56 |
dynCodePay.html
| @@ -66,6 +66,19 @@ | @@ -66,6 +66,19 @@ | ||
| 66 | font-size: 14px; | 66 | font-size: 14px; |
| 67 | color: #EB453B; | 67 | color: #EB453B; |
| 68 | } | 68 | } |
| 69 | + .paySuccess{ | ||
| 70 | + width: 100%; | ||
| 71 | + height: 100%; | ||
| 72 | + text-align: center; | ||
| 73 | + line-height: 100px; | ||
| 74 | + font-size: 20px; | ||
| 75 | + color: #fff; | ||
| 76 | + background: rgba(0,0,0,.7); | ||
| 77 | + position: fixed; | ||
| 78 | + top:0; | ||
| 79 | + left: 0; | ||
| 80 | + display: none; | ||
| 81 | + } | ||
| 69 | </style> | 82 | </style> |
| 70 | </head> | 83 | </head> |
| 71 | <body> | 84 | <body> |
| @@ -127,7 +140,7 @@ | @@ -127,7 +140,7 @@ | ||
| 127 | <img src="img/loading.gif" id="loading" style="display: none;" /> | 140 | <img src="img/loading.gif" id="loading" style="display: none;" /> |
| 128 | </footer> | 141 | </footer> |
| 129 | <!--<section id="payTip" style="padding: 5px;margin-top:5px; color: #3385ff; font-size: 14px; "></section>--> | 142 | <!--<section id="payTip" style="padding: 5px;margin-top:5px; color: #3385ff; font-size: 14px; "></section>--> |
| 130 | - | 143 | + <div class="paySuccess" id="paySuccess">支付成功,请立即离场</div> |
| 131 | </body> | 144 | </body> |
| 132 | 145 | ||
| 133 | </html> | 146 | </html> |
js/billCodePay.js
| @@ -8,7 +8,11 @@ var $btnObj = null; | @@ -8,7 +8,11 @@ var $btnObj = null; | ||
| 8 | var $btnLoad = null; | 8 | var $btnLoad = null; |
| 9 | var webAppCode = null;//如果是微信,先获取微信code | 9 | var webAppCode = null;//如果是微信,先获取微信code |
| 10 | var flag = 0; | 10 | var flag = 0; |
| 11 | -window.onload = function () { | 11 | +function trim(str) { |
| 12 | + | ||
| 13 | + return str.replace(/(^\s*)|(\s*$)/g, ""); | ||
| 14 | +} | ||
| 15 | + window.onload = function () { | ||
| 12 | //var root = document.getElementById("root"); | 16 | //var root = document.getElementById("root"); |
| 13 | $btnObj = document.getElementById("btnPayOK"); | 17 | $btnObj = document.getElementById("btnPayOK"); |
| 14 | $btnLoad = document.getElementById("loading"); | 18 | $btnLoad = document.getElementById("loading"); |
| @@ -130,7 +134,45 @@ var webAppClass = { | @@ -130,7 +134,45 @@ var webAppClass = { | ||
| 130 | //[方式二,倒计时支付] | 134 | //[方式二,倒计时支付] |
| 131 | $btnObj.style.display = "none"; | 135 | $btnObj.style.display = "none"; |
| 132 | $btnLoad.style.display = "block"; | 136 | $btnLoad.style.display = "block"; |
| 133 | - webAppClass.okPay(webAppParams);//唤醒支付 | 137 | + var val = document.getElementById("sumMoney").innerText; |
| 138 | + var couponPersonId = trim(document.getElementById("discountBox").value); | ||
| 139 | + var url = webAppRoot + window.webAppH5.zeroPayServer; | ||
| 140 | + var discountParams = { | ||
| 141 | + payOrderType : 101, | ||
| 142 | + terminalSource:7, | ||
| 143 | + orderId: webAppParams.orderId, | ||
| 144 | + couponPersonId:couponPersonId, | ||
| 145 | + app_id: '123', | ||
| 146 | + sign_type: '123', | ||
| 147 | + salt: '123', | ||
| 148 | + deviceInfo: '123', | ||
| 149 | + sign: '123', | ||
| 150 | + } | ||
| 151 | + if(val == '0.00' || val=='0'){ | ||
| 152 | + postRequest(url, discountParams, function (res) { | ||
| 153 | + console.log(res) | ||
| 154 | + if(res.code==0){ | ||
| 155 | + document.getElementById("paySuccess").style.display = 'block' | ||
| 156 | + // | ||
| 157 | + // document.getElementById("sumMoney").innerHTML = (res.data.orderFee/100) | ||
| 158 | + // document.getElementById("discountTip").innerHTML = res.data.couponDescribe | ||
| 159 | + // document.getElementById("discountFee").innerHTML = (res.data.discountFee/100) | ||
| 160 | + // document.getElementById("discountDesc").style.display="none" | ||
| 161 | + // $btnLoad.style.display = "none"; | ||
| 162 | + // $btnObj.style.display = "block"; | ||
| 163 | + // document.getElementById("discountBox").setAttribute('readonly','readonly'); | ||
| 164 | + // flag = 1 | ||
| 165 | + }else{ | ||
| 166 | + alert(res.message) | ||
| 167 | + // $discountBtn.disabled = false | ||
| 168 | + // document.getElementById("discountTip").innerHTML = res.message | ||
| 169 | + } | ||
| 170 | + }) | ||
| 171 | + }else{ | ||
| 172 | + webAppClass.okPay(webAppParams);//唤醒支付 | ||
| 173 | + } | ||
| 174 | + | ||
| 175 | + | ||
| 134 | }, | 176 | }, |
| 135 | //优惠券兑换 | 177 | //优惠券兑换 |
| 136 | codediscountClick:function(tmpObj){ | 178 | codediscountClick:function(tmpObj){ |
js/dynCodePay.js
| @@ -9,6 +9,10 @@ var $btnObj = null; | @@ -9,6 +9,10 @@ var $btnObj = null; | ||
| 9 | var $btnLoad = null; | 9 | var $btnLoad = null; |
| 10 | var webAppCode = null;//如果是微信,先获取微信code | 10 | var webAppCode = null;//如果是微信,先获取微信code |
| 11 | // var flag = 0; | 11 | // var flag = 0; |
| 12 | +function trim(str) { | ||
| 13 | + | ||
| 14 | + return str.replace(/(^\s*)|(\s*$)/g, ""); | ||
| 15 | +} | ||
| 12 | window.onload = function () { | 16 | window.onload = function () { |
| 13 | $btnObj = getObjectByID("btnPayOK"); | 17 | $btnObj = getObjectByID("btnPayOK"); |
| 14 | $btnLoad = getObjectByID("loading"); | 18 | $btnLoad = getObjectByID("loading"); |
| @@ -108,8 +112,46 @@ var webAppClass = { | @@ -108,8 +112,46 @@ var webAppClass = { | ||
| 108 | if (webAppParams == null) { | 112 | if (webAppParams == null) { |
| 109 | alertMsg("暂无订单信息");return; | 113 | alertMsg("暂无订单信息");return; |
| 110 | } | 114 | } |
| 111 | - //支付方式判断 | ||
| 112 | - webAppClass.okPay(webAppParams); | 115 | + $btnObj.style.display = "none"; |
| 116 | + $btnLoad.style.display = "block"; | ||
| 117 | + var val = document.getElementById("sumMoney").innerText; | ||
| 118 | + var couponPersonId = trim(document.getElementById("discountBox").value); | ||
| 119 | + var url = webAppRoot + window.webAppH5.zeroPayServer; | ||
| 120 | + var discountParams = { | ||
| 121 | + payOrderType : 101, | ||
| 122 | + terminalSource:7, | ||
| 123 | + orderId: webAppParams.orderId, | ||
| 124 | + couponPersonId:couponPersonId, | ||
| 125 | + app_id: '123', | ||
| 126 | + sign_type: '123', | ||
| 127 | + salt: '123', | ||
| 128 | + deviceInfo: '123', | ||
| 129 | + sign: '123', | ||
| 130 | + } | ||
| 131 | + if(val == '0.00' || val=='0'){ | ||
| 132 | + postRequest(url, discountParams, function (res) { | ||
| 133 | + console.log(res) | ||
| 134 | + if(res.code==0){ | ||
| 135 | + document.getElementById("paySuccess").style.display = 'block' | ||
| 136 | + // | ||
| 137 | + // document.getElementById("sumMoney").innerHTML = (res.data.orderFee/100) | ||
| 138 | + // document.getElementById("discountTip").innerHTML = res.data.couponDescribe | ||
| 139 | + // document.getElementById("discountFee").innerHTML = (res.data.discountFee/100) | ||
| 140 | + // document.getElementById("discountDesc").style.display="none" | ||
| 141 | + // $btnLoad.style.display = "none"; | ||
| 142 | + // $btnObj.style.display = "block"; | ||
| 143 | + // document.getElementById("discountBox").setAttribute('readonly','readonly'); | ||
| 144 | + // flag = 1 | ||
| 145 | + }else{ | ||
| 146 | + alert(res.message) | ||
| 147 | + // $discountBtn.disabled = false | ||
| 148 | + // document.getElementById("discountTip").innerHTML = res.message | ||
| 149 | + } | ||
| 150 | + }) | ||
| 151 | + }else{ | ||
| 152 | + webAppClass.okPay(webAppParams);//唤醒支付 | ||
| 153 | + } | ||
| 154 | + | ||
| 113 | }, | 155 | }, |
| 114 | 156 | ||
| 115 | //确定支付 | 157 | //确定支付 |
js/pay.js
| @@ -202,43 +202,63 @@ var webAppClass = { | @@ -202,43 +202,63 @@ var webAppClass = { | ||
| 202 | okPay: function (params) { | 202 | okPay: function (params) { |
| 203 | var orderID = params.orderId;//订单号 | 203 | var orderID = params.orderId;//订单号 |
| 204 | //var moneyID = document.getElementById("sumMoney").innerHTML = webAppParams.orderId;//订单号 | 204 | //var moneyID = document.getElementById("sumMoney").innerHTML = webAppParams.orderId;//订单号 |
| 205 | - var root = webAppRoot; | ||
| 206 | - //第一首先判断当前哪种浏览器方式[微信内置、支付宝内置、第三方浏览器] | ||
| 207 | - var clientType = clientBrowserEx(); | ||
| 208 | - //alert(clientType); | ||
| 209 | - switch (clientType) { | ||
| 210 | - case "wxPay"://微信[内置浏览器] | ||
| 211 | - //var wxPay = webAppH5.wxPayServer; | ||
| 212 | - //var wxParams = webAppH5.comParams; | ||
| 213 | - //wxParams.orderId = orderID; | ||
| 214 | - //wxParams.payType = 4;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | ||
| 215 | - //wxParams.terminalSource = 3;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | ||
| 216 | - //debugger; | ||
| 217 | - if (webAppCode == null || webAppCode == "") {//code检测 | ||
| 218 | - alertMsg(appState.codeNullTip); | ||
| 219 | - $btnObj.style.display = "block"; | ||
| 220 | - $btnLoad.style.display = "none"; | ||
| 221 | - return; | 205 | + var val = document.getElementById("sumMoney").innerText; |
| 206 | + var couponPersonId = document.getElementById("discountBox").value; | ||
| 207 | + var url = webAppRoot + window.webAppH5.zeroPayServer; | ||
| 208 | + var discountParams = { | ||
| 209 | + payOrderType : 101, | ||
| 210 | + terminalSource:7, | ||
| 211 | + orderId: webAppParams.orderId, | ||
| 212 | + couponPersonId:couponPersonId, | ||
| 213 | + app_id: '123', | ||
| 214 | + sign_type: '123', | ||
| 215 | + salt: '123', | ||
| 216 | + deviceInfo: '123', | ||
| 217 | + sign: '123', | ||
| 218 | + } | ||
| 219 | + if(val == '0.00' || val=='0'){ | ||
| 220 | + postRequest(url, discountParams, function (res) { | ||
| 221 | + console.log(res) | ||
| 222 | + if(res.code==0){ | ||
| 223 | + document.getElementById("paySuccess").style.display = 'block' | ||
| 224 | + // | ||
| 225 | + // document.getElementById("sumMoney").innerHTML = (res.data.orderFee/100) | ||
| 226 | + // document.getElementById("discountTip").innerHTML = res.data.couponDescribe | ||
| 227 | + // document.getElementById("discountFee").innerHTML = (res.data.discountFee/100) | ||
| 228 | + // document.getElementById("discountDesc").style.display="none" | ||
| 229 | + // $btnLoad.style.display = "none"; | ||
| 230 | + // $btnObj.style.display = "block"; | ||
| 231 | + // document.getElementById("discountBox").setAttribute('readonly','readonly'); | ||
| 232 | + // flag = 1 | ||
| 233 | + }else{ | ||
| 234 | + alert(res.message) | ||
| 235 | + // $discountBtn.disabled = false | ||
| 236 | + // document.getElementById("discountTip").innerHTML = res.message | ||
| 222 | } | 237 | } |
| 223 | - webAppClass.payAjaxJDK(orderID); | ||
| 224 | - console.log("wxPay");//微信支付 | ||
| 225 | - break; | ||
| 226 | - case "aliPay"://支付宝 | ||
| 227 | - console.log("aliPay"); | ||
| 228 | - //订单号 | ||
| 229 | - var obj = {}; | ||
| 230 | - //this.payAjax(url, { orderId: "11111", price: 0.01 }); | ||
| 231 | - var aliPay = webAppH5.aliPayServer; | ||
| 232 | - var aliParams = webAppH5.comParams; | ||
| 233 | - aliParams.orderId = orderID; | ||
| 234 | - aliParams.payType = 1;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | ||
| 235 | - aliParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | ||
| 236 | - aliParams.paySrcType = 101;//101停车支付 | ||
| 237 | - webAppClass.payAliAjax(root + aliPay, aliParams); | ||
| 238 | - break; | ||
| 239 | - default://第三方浏览器other | ||
| 240 | - //默认支付宝 | ||
| 241 | - if (document.getElementById("aliPay").checked) { | 238 | + }) |
| 239 | + }else { | ||
| 240 | + var root = webAppRoot; | ||
| 241 | + //第一首先判断当前哪种浏览器方式[微信内置、支付宝内置、第三方浏览器] | ||
| 242 | + var clientType = clientBrowserEx(); | ||
| 243 | + //alert(clientType); | ||
| 244 | + switch (clientType) { | ||
| 245 | + case "wxPay"://微信[内置浏览器] | ||
| 246 | + //var wxPay = webAppH5.wxPayServer; | ||
| 247 | + //var wxParams = webAppH5.comParams; | ||
| 248 | + //wxParams.orderId = orderID; | ||
| 249 | + //wxParams.payType = 4;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | ||
| 250 | + //wxParams.terminalSource = 3;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | ||
| 251 | + //debugger; | ||
| 252 | + if (webAppCode == null || webAppCode == "") {//code检测 | ||
| 253 | + alertMsg(appState.codeNullTip); | ||
| 254 | + $btnObj.style.display = "block"; | ||
| 255 | + $btnLoad.style.display = "none"; | ||
| 256 | + return; | ||
| 257 | + } | ||
| 258 | + webAppClass.payAjaxJDK(orderID); | ||
| 259 | + console.log("wxPay");//微信支付 | ||
| 260 | + break; | ||
| 261 | + case "aliPay"://支付宝 | ||
| 242 | console.log("aliPay"); | 262 | console.log("aliPay"); |
| 243 | //订单号 | 263 | //订单号 |
| 244 | var obj = {}; | 264 | var obj = {}; |
| @@ -250,19 +270,36 @@ var webAppClass = { | @@ -250,19 +270,36 @@ var webAppClass = { | ||
| 250 | aliParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | 270 | aliParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 |
| 251 | aliParams.paySrcType = 101;//101停车支付 | 271 | aliParams.paySrcType = 101;//101停车支付 |
| 252 | webAppClass.payAliAjax(root + aliPay, aliParams); | 272 | webAppClass.payAliAjax(root + aliPay, aliParams); |
| 253 | - } else {//微信页面支付 | ||
| 254 | - var url = " https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096"; | ||
| 255 | - //window.location.href = url; | ||
| 256 | - var wxPay = webAppH5.wxPayServer; | ||
| 257 | - var wxParams = webAppH5.comParams; | ||
| 258 | - wxParams.orderId = orderID; | ||
| 259 | - wxParams.payType = 4;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | ||
| 260 | - wxParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | ||
| 261 | - webAppClass.payAjax(root + wxPay, wxParams); | ||
| 262 | - console.log("wxPay"); | ||
| 263 | - } | ||
| 264 | - break; | 273 | + break; |
| 274 | + default://第三方浏览器other | ||
| 275 | + //默认支付宝 | ||
| 276 | + if (document.getElementById("aliPay").checked) { | ||
| 277 | + console.log("aliPay"); | ||
| 278 | + //订单号 | ||
| 279 | + var obj = {}; | ||
| 280 | + //this.payAjax(url, { orderId: "11111", price: 0.01 }); | ||
| 281 | + var aliPay = webAppH5.aliPayServer; | ||
| 282 | + var aliParams = webAppH5.comParams; | ||
| 283 | + aliParams.orderId = orderID; | ||
| 284 | + aliParams.payType = 1;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | ||
| 285 | + aliParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | ||
| 286 | + aliParams.paySrcType = 101;//101停车支付 | ||
| 287 | + webAppClass.payAliAjax(root + aliPay, aliParams); | ||
| 288 | + } else {//微信页面支付 | ||
| 289 | + var url = " https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096"; | ||
| 290 | + //window.location.href = url; | ||
| 291 | + var wxPay = webAppH5.wxPayServer; | ||
| 292 | + var wxParams = webAppH5.comParams; | ||
| 293 | + wxParams.orderId = orderID; | ||
| 294 | + wxParams.payType = 4;// 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 | ||
| 295 | + wxParams.terminalSource = 7;//请求端来源 1: 任你停 2:pda 3:微信公共号 7:H5扫码 10页面支付 | ||
| 296 | + webAppClass.payAjax(root + wxPay, wxParams); | ||
| 297 | + console.log("wxPay"); | ||
| 298 | + } | ||
| 299 | + break; | ||
| 300 | + } | ||
| 265 | } | 301 | } |
| 302 | + | ||
| 266 | }, | 303 | }, |
| 267 | 304 | ||
| 268 | getCode: function () { | 305 | getCode: function () { |
pay.html
| @@ -68,6 +68,19 @@ | @@ -68,6 +68,19 @@ | ||
| 68 | font-size: 14px; | 68 | font-size: 14px; |
| 69 | color: #EB453B; | 69 | color: #EB453B; |
| 70 | } | 70 | } |
| 71 | + .paySuccess{ | ||
| 72 | + width: 100%; | ||
| 73 | + height: 100%; | ||
| 74 | + text-align: center; | ||
| 75 | + line-height: 100px; | ||
| 76 | + font-size: 20px; | ||
| 77 | + color: #fff; | ||
| 78 | + background: rgba(0,0,0,.7); | ||
| 79 | + position: fixed; | ||
| 80 | + top:0; | ||
| 81 | + left: 0; | ||
| 82 | + display: none; | ||
| 83 | + } | ||
| 71 | </style> | 84 | </style> |
| 72 | </head> | 85 | </head> |
| 73 | <body> | 86 | <body> |
| @@ -129,7 +142,7 @@ | @@ -129,7 +142,7 @@ | ||
| 129 | <img src="img/loading.gif" id="loading" style="display: none;" /> | 142 | <img src="img/loading.gif" id="loading" style="display: none;" /> |
| 130 | </footer> | 143 | </footer> |
| 131 | <section id="payTip" style="padding: 10px;margin-top:5px; color: #3385ff; font-size: 14px; "></section> | 144 | <section id="payTip" style="padding: 10px;margin-top:5px; color: #3385ff; font-size: 14px; "></section> |
| 132 | - | 145 | + <div class="paySuccess" id="paySuccess">支付成功,请立即离场</div> |
| 133 | <!-- | 146 | <!-- |
| 134 | This HTML file is a template. | 147 | This HTML file is a template. |
| 135 | If you open it directly in the browser, you will see an empty page. | 148 | If you open it directly in the browser, you will see an empty page. |