//insert function keypress(e){ e.preventDefault(); var target = e.target; var value = target.getAttribute('data-value'); var dot = valueCur.match(/\.\d{2,}$/); if(!value || (value !== 'delete' && dot)){ return; } switch(value){ case '0' : valueCur = valueCur === '0' ? valueCur : valueCur + value; break; case 'dot' : valueCur = valueCur === '' ? valueCur : valueCur.indexOf('.') > -1 ? valueCur : valueCur + '.'; break; case 'delete' : valueCur = valueCur.slice(0,valueCur.length-1); break; default : valueCur = valueCur === '0' ? value : valueCur + value; } if(!!valueCur && value !== 'delete' && value !== 'dot') { var re = /^\d{1,9}(\.\d{0,2})?$/; var limitLen = re.test(valueCur); if (!limitLen) { valueCur = valueCur.slice(0,valueCur.length-1); return; } } format(); } //format function format(){ var arr = valueCur.split('.'); var right = arr.length === 2 ? '.'+arr[1] : ''; var num = arr[0]; var left = ''; while(num.length > 3){ left = ',' + num.slice(-3) + left; num = num.slice(0,num.length - 3); } left = num + left; valueFormat = left+right; valueFinal = valueCur === '' ? 0 : parseFloat(valueCur); check(); } //check function check(){ amount.innerHTML = valueFormat; if(valueFormat.length > 0){ clearBtn.classList.remove('none'); }else{ clearBtn.classList.add('none'); } if(valueFinal === 0 || valueCur.match(/\.$/)){ payBtn.classList.add('disable'); }else{ payBtn.classList.remove('disable'); } } //clear function clearFun(){ valueCur = ''; valueFormat = ''; valueFinal = 0; amount.innerHTML = ''; clearBtn.classList.add('none'); payBtn.classList.add('disable'); } //submit function submitFun(){ if(!submitAble || payBtn.classList.contains('disable')){ return; } var txAmount = $("#txAmount").val(); if (!!txAmount && txAmount > 0) { valueFinal = txAmount; } if(valueFinal == 0){ tips.show('请输入金额!'); return; } var amount = valueFinal; var uid = $("#uid").val(); var paytype = $("#paytype").val(); var token = $("#token").val(); var direct = $("#direct").val(); var payer = $("#payer").val(); var remark = document.querySelector("#remark-content").innerText; submitAble = false; loading.show(); new Post({ url : 'ajax.php', dataType : 'json', data : {"money":amount,"payer":payer,"uid":uid,"paytype":paytype,"direct":direct,"remark":remark,"token":token}, error : function(){ loading.hide(); submitAble = true; //update by yuwm 2018.03.14 tips.show('网络异常,请重新发起支付'); }, success : function(data){ loading.hide(); if(data.code=="0"){//success $("#trade_no").val(data.trade_no); if (data.direct==1) { if (paytype == 'wxpay') { WxpayJsPay(data.paydata); } else if (paytype == 'alipay') { AlipayJsPay(data.paydata); } else if (paytype == 'qqpay') { QQJsPay(data.paydata); } }else{ window.location.href= data.url; } }else{ tips.show(data.msg); } submitAble = true; } }); } //region WX JS function WxpayJsPay(payStr){ var jsonPayStr = eval("("+payStr+")"); WeixinJSBridge.invoke( 'getBrandWCPayRequest', jsonPayStr, function(res){ // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。 if(res.err_msg == "get_brand_wcpay_request:ok" ) { // 支付成功则关闭窗口 // tips.show("支付成功"); //WeixinJSBridge.call('closeWindow'); window.location.href="./success.php?trade_no="+$("#trade_no").val(); } else if(res.err_msg == "get_brand_wcpay_request:cancel") { // tips.show("支付过程中用户取消"); } else if(res.err_msg == "get_brand_wcpay_request:fail") { tips.show("支付失败"); }else{ tips.show("支付失败"); } } ); } //endregion //region ALI JS function AlipayJsPay(payStr) { var trade_no = $("#trade_no").val(); Alipayready(function(){ AlipayJSBridge.call("tradePay",{ tradeNO: payStr }, function(result){ var msg = ""; if(result.resultCode == "9000"){ //AlipayJSBridge.call('closeWebview'); window.location.href="./success.php?trade_no="+$("#trade_no").val(); }else if(result.resultCode == "8000"){ msg = "正在处理中"; }else if(result.resultCode == "4000"){ msg = "订单支付失败"; }else if(result.resultCode == "6002"){ msg = "网络连接出错"; } if (msg!="") { tips.show(msg); } }); }); } function Alipayready(callback) { // 如果jsbridge已经注入则直接调用 if (window.AlipayJSBridge) { callback && callback(); } else { // 如果没有注入则监听注入的事件 document.addEventListener('AlipayJSBridgeReady', callback, false); } } //endregion //region QQ JS function QQJsPay(payStr){ var trade_no = $("#trade_no").val(); var jsonPayStr = eval("("+payStr+")"); mqq.tenpay.pay({ tokenId: jsonPayStr.tokenId, appInfo: jsonPayStr.appInfo }, function(result, resultCode){ if(resultCode == 0){ //支付成功 //mqq.ui.popBack(); window.location.href="./success.php?trade_no="+$("#trade_no").val(); }else{ tips.show("支付失败"); } }); } //endregion var keyboard = getId('keyboard'); var clearBtn = getId('clearBtn'); var payBtn = getId('payBtn'); var valueCur = ''; var valueFormat = ''; var submitAble = true; var valueFinal = 0; new Hammer(keyboard).on('tap',keypress); new Hammer(payBtn).on('tap',submitFun); new Hammer(clearBtn).on('tap',clearFun); var txAmount = $("#txAmount").val(); if (!!txAmount && txAmount > 0) { submitFun() }