var myTimer; function timer(intDiff) { var i = 0; myTimer = window.setInterval(function () { i++; var day = 0, hour = 0, minute = 0, second = 0;//时间默认值 if (intDiff > 0) { day = Math.floor(intDiff / (60 * 60 * 24)); hour = Math.floor(intDiff / (60 * 60)) - (day * 24); minute = Math.floor(intDiff / 60) - (day * 24 * 60) - (hour * 60); second = Math.floor(intDiff) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60); } if (minute <= 9) minute = '0' + minute; if (second <= 9) second = '0' + second; $('#hour_show').html('' + hour + '时'); $('#minute_show').html('' + minute + '分'); $('#second_show').html('' + second + '秒'); if (hour <= 0 && minute <= 0 && second <= 0) { qrcode_timeout() clearInterval(myTimer); } intDiff--; }, 1000); } try { document.ontouchstart = function () { $('#use').hide(); } } catch (e) { } function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var seperator2 = ":"; var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate + " " + date.getHours() + seperator2 + date.getMinutes() + seperator2 + date.getSeconds(); return currentdate; } myDate = function (s, t, g) { if (t == "null") { return "?" } s = "-" + s; s = s.toLocaleLowerCase(); a = s.indexOf("y"); b = s.indexOf("-m"); c = s.indexOf("d"); d = s.indexOf("h"); e = s.indexOf(":m"); f = s.indexOf("s"); t ? date = new Date(t * 1000) : date = new Date(); b < 0 ? as = "" : as = "-"; c < 0 ? bs = "" : bs = "-"; d < 0 ? cs = "" : cs = " "; e < 0 ? ds = "" : ds = ":"; f < 0 ? es = "" : es = ":"; g ? g1 = ":00" : g1 = ""; //设置显示时分秒则显示否则不显示 g ? g2 = ":00" : g2 = ""; var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } a >= 0 ? a = date.getFullYear() + as : a = ""; b >= 0 ? b = month + bs : b = ""; c >= 0 ? c = strDate + cs : c = ""; d >= 0 ? d = date.getHours() + ds : d = g1; e >= 0 ? e = date.getMinutes() + es : e = g1; f >= 0 ? f = date.getSeconds() : f = g2; var currentdate = a + b + c + d + e + f; return currentdate; } createLinkstring = function (para) { var arg = ""; for (i in para) { if ((!para[i] && typeof para[i] != 'number') || i == 'password' || (i + '').toLowerCase() == 'creattime')continue; //跳过传递此类 arg += i + "=" + encodeURIComponent(para[i]) + "&"; } //去掉最后一个&字符 arg = arg.substring(0, arg.length - 1) return arg; } function isMobile() { var ua = navigator.userAgent.toLowerCase(); _long_matches = 'googlebot-mobile|android|avantgo|blackberry|blazer|elaine|hiptop|ip(hone|od)|kindle|midp|mmp|mobile|o2|opera mini|palm( os)?|pda|plucker|pocket|psp|smartphone|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce; (iemobile|ppc)|xiino|maemo|fennec' _long_matches = new RegExp(_long_matches); _short_matches = '1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-' _short_matches = new RegExp(_short_matches); if (_long_matches.test(ua)) { return 1 } user_agent = ua.substring(0, 4) if (_short_matches.test(user_agent)) { return 1 } return 0 } callback = function (data) { var status = parseInt(data.status); if (!isNaN(status) && status >= 0) { try { data.id = user_data.codePay_id; //用户标识 } catch (e) { } data.mobile = !data.mobile ? isMobile() : 1; startNotiry(data); //启用支付成功通知服务 show_Qrcode(data); //显示二维码 log(data); } else if (data.status == -8) { show_Qrcode(data); //显示二维码 $("#msg h1").html("商家的软件未对接,付款后请等待商家确认。"); // alert("管理员的软件未运行,付款后无法立即通知。管理员可以关闭调试模式来禁用此消息"); } else { alert("订单创建失败 请更换其他支付方式或反馈管理员错误信息:" + data.msg); } } qrcode_timeout = function () { //二维码超时则停止显示二维码 if (notifyServer && notifyServer.started)notifyServer.emit('notify_out', {}); $("#show_qrcode").attr("src", ''); $("#show_qrcode").attr("alt", '二维码失效'); $("#msg h1").html("支付超时 请重新提交订单"); //过期提醒信息 } show_Qrcode = function (data) { var ua = navigator.userAgent.toLowerCase() if (!data)return; if (user_data && user_data.qrcode_url) { data.qrcode = user_data.qrcode_url + '?money=' + data.money + '&qr_user='+o.qr_user+ '&type=' + data["type"] + '&tag=' + data.tag; } if (data.qrcode)$("#show_qrcode").attr("src", data.qrcode); //二维码更新 if (data.money) $("#money").html('¥' + data.money); //金额改变 云端匹配最佳金额 var tps=data.money!=data.price?'为了您及时到账 请务必付款'+data.money+'元
':''; if (data.message) { //创建后云端根据浏览器返回的tps提醒 tps=data.message; //$("#msg h1").html(data.message); } else if (data.mobile) { if ((data["type"] == 3 && ua.indexOf('micromessenger') > 1) || (data["type"] == 2 && ua.indexOf('qq') > 1)) { tps += '长按识别该二维码 自动到账'; } else { tps += '长按保存到相册使用' + (data.type == 3 ? '微信' : data.type == 2 ? 'QQ' : '支付宝') + '扫码'; } // $("#msg h1").html(tps); //手机支付 } else { tps+=tps?'':'付款后自动到账 未到账可联系我们'; // $("#msg h1").html('付款后自动到账 未到账可联系我们'); } $("#msg h1").html(tps); show_desc(data); } function getDescMode(key, value) { var reslut = value ? '
' + key + '
' + value + '
' : ''; return reslut; } show_desc = function (data) { //商品描述 var html = ''; html += getDescMode('账号', data.pay_id); html += getDescMode('金额', "¥" + data.money); html += getDescMode('云端单号', data.order_id); html += getDescMode('创建时间', getNowFormatDate()); html += getDescMode('过期时间', myDate("y-m-d h:m:s", data.endTime)); $("#desc").html(html); } getApiHost = function (data) { if (data && data.https) { return 'https://notify.yy2169.com:51889' } else { return 'https://notify.yy2169.com:51889' } } log = function (s) { try { console.log(s); } catch (e) { } } var notifyServer function startNotiry(data) { data.notiry_host = data.notiry_host || getApiHost(data); notifyServer = notify = io.connect(data.notiry_host); // notifyServer = notify = io.connect(window.location.hostname=='127.0.0.1'?'http://192.168.31.201:52888':data.notiry_host); notify.emit('notify', data); notify.on('notify', function (o) { //同步通知服务返回 log(o); notifyServer.started = true; if (!o)return; if (user_data && user_data.qrcode_url && o.money) { o.qrcode = user_data.qrcode_url + '?money=' + o.money + '&qr_user='+o.qr_user+'&type=' + o["type"] + '&tag=' + o.tag; } if (o.qrcode && $("#show_qrcode").src != o.qrcode)$("#show_qrcode").attr("src", o.qrcode); //二维码 if (o.money) $("#money").html('¥' + o.money); //金额改变 if (o.msg)$("#msg h1").html(o.msg); //过期 if (o.outTime) { try { clearInterval(myTimer); } catch (e) { } timer(parseInt(o.outTime)); } }); notify.on('sussecc', function (o) { //成功后跳转 log(o); var status = parseInt(o.status); $("#show_qrcode").attr("src", 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=='); $("#show_qrcode").attr("alt", '支付成功 跳转中'); var wait_time=window.wait_time||1000; if (!user_data.return_url)user_data.return_url = 'https://codepay.fateqq.com/demo_show.html'; var openUrl = user_data.return_url; var query = createLinkstring(o); openUrl += openUrl.indexOf('?') > 1 ? "&" + query : "?" + query; if (!isNaN(status) && status > 1)$("#msg h1").html('支付成功 立即跳转'); setTimeout(function () { window.location = openUrl; },wait_time); //延时跳转 }); notify.on('disconnect', function (o) {//服务器断开 无法通知 log(o); }); notify.on('warning', function (o) {//系统通知 if (o.msg)$("#msg h1").html(o.msg); }); } $(document).ready(function(){ $(function () { timer(user_data.outTime || 360); }); $('#orderDetail .arrow').click(function (event) { if ($('#orderDetail').hasClass('detail-open')) { $('#orderDetail .detail-ct').slideUp(500, function () { $('#orderDetail').removeClass('detail-open'); }); } else { $('#orderDetail .detail-ct').slideDown(500, function () { $('#orderDetail').addClass('detail-open'); }); } }); });