first commit
This commit is contained in:
commit
09a14bf0a3
1088 files changed
+145132
No files matched your search
@@ -0,0 +1,36 @@
|
||||
if(navigator.userAgent.indexOf("AlipayClient/") > -1){
|
||||
function Alipayready(callback) {
|
||||
if (window.AlipayJSBridge) {
|
||||
callback && callback();
|
||||
} else {
|
||||
document.addEventListener('AlipayJSBridgeReady', callback, false);
|
||||
}
|
||||
}
|
||||
Alipayready(function(){
|
||||
$('#Close').click(function() {
|
||||
AlipayJSBridge.call('popWindow');
|
||||
});
|
||||
})
|
||||
}else if(navigator.userAgent.indexOf("MicroMessenger/") > -1){
|
||||
if (typeof WeixinJSBridge == "undefined") {
|
||||
if (document.addEventListener) {
|
||||
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
|
||||
} else if (document.attachEvent) {
|
||||
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
|
||||
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
|
||||
}
|
||||
} else {
|
||||
jsApiCall();
|
||||
}
|
||||
function jsApiCall() {
|
||||
$('#Close').click(function() {
|
||||
WeixinJSBridge.call('closeWindow');
|
||||
});
|
||||
}
|
||||
}else if(navigator.userAgent.indexOf("QQ/") > -1){
|
||||
$('#Close').hide();
|
||||
}else {
|
||||
$('#Close').click(function() {
|
||||
window.opener=null;window.close();
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
function getId(value){
|
||||
return document.getElementById(value);
|
||||
}
|
||||
|
||||
//ajax post
|
||||
function Post(option){
|
||||
var url = option.url || "";
|
||||
var data = (function(){
|
||||
var text = '';
|
||||
if(option.data && option.data.constructor == Object){
|
||||
var arr = [];
|
||||
for(var key in option.data){
|
||||
arr.push(key+'='+option.data[key]);
|
||||
}
|
||||
text = arr.join('&');
|
||||
}
|
||||
return text;
|
||||
})();
|
||||
var toJson = option.dataType == 'text' ? false : true;
|
||||
var success = option.success || function(){};
|
||||
var error = option.error || function(){};
|
||||
var timeout = option.timeout || 30000;
|
||||
var isTimeout = false;
|
||||
var http = new XMLHttpRequest();
|
||||
var timer = setTimeout(function(){
|
||||
isTimeout = true;
|
||||
http.abort();
|
||||
error();
|
||||
},timeout);
|
||||
http.open("POST",url,true);
|
||||
http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
||||
http.onreadystatechange = function(){
|
||||
if(http.readyState != 4 || isTimeout){return;}
|
||||
clearTimeout(timer);
|
||||
if(http.status == 200){
|
||||
var response = toJson ? JSON.parse(http.responseText) : http.responseText;
|
||||
success(response);
|
||||
}else{
|
||||
error();
|
||||
}
|
||||
};
|
||||
http.send(data);
|
||||
}
|
||||
|
||||
//loading
|
||||
function Loading(){
|
||||
var obj = document.createElement('div');
|
||||
var box = document.createElement('div');
|
||||
var img = document.createElement('div');
|
||||
var txt = document.createElement('p');
|
||||
|
||||
obj.className = 'circle-box none';
|
||||
box.className = 'circle_animate';
|
||||
img.className = 'circle';
|
||||
box.appendChild(img);
|
||||
box.appendChild(txt);
|
||||
obj.appendChild(box);
|
||||
if(script){
|
||||
script.parentNode.insertBefore(obj,script);
|
||||
}else{
|
||||
document.body.appendChild(obj);
|
||||
}
|
||||
|
||||
this.show = function(value){
|
||||
txt.innerHTML = value || '加载中...';
|
||||
obj.classList.remove('none');
|
||||
};
|
||||
|
||||
this.hide = function(){
|
||||
obj.classList.add('none');
|
||||
txt.innerHTML = '';
|
||||
};
|
||||
}
|
||||
|
||||
//tips
|
||||
function Tips(){
|
||||
var obj = document.createElement('div');
|
||||
var box = document.createElement('div');
|
||||
var con = document.createElement('div');
|
||||
var txt = document.createElement('div');
|
||||
var p = document.createElement('p');
|
||||
var btnBox = document.createElement('p');
|
||||
var btn = document.createElement('span');
|
||||
|
||||
obj.className = 'pop_wrapper none';
|
||||
box.className = 'pop_outer';
|
||||
con.className = 'pop_cont';
|
||||
txt.className = 'pop_tip';
|
||||
p.className = 'border b_top';
|
||||
btnBox.className = 'pop_wbtn';
|
||||
btn.className='pop_btn'
|
||||
|
||||
btn.innerHTML = '我知道了';
|
||||
|
||||
p.appendChild(btn);
|
||||
con.appendChild(txt);
|
||||
con.appendChild(p);
|
||||
box.appendChild(con);
|
||||
obj.appendChild(box);
|
||||
if(script){
|
||||
script.parentNode.insertBefore(obj,script);
|
||||
}else{
|
||||
document.body.appendChild(obj);
|
||||
}
|
||||
|
||||
function hideFun(){
|
||||
obj.classList.add('none');
|
||||
}
|
||||
|
||||
this.show = function(value,callback){
|
||||
var fun = callback || hideFun;
|
||||
txt.innerHTML = value || ' ';
|
||||
p.onclick = callback || hideFun;
|
||||
obj.classList.remove('none');
|
||||
};
|
||||
|
||||
this.hide = hideFun;
|
||||
}
|
||||
|
||||
document.body.addEventListener('touchstart',function(){},false);
|
||||
var script = document.body.getElementsByTagName('script')[0];
|
||||
var loading = new Loading();
|
||||
@@ -0,0 +1,7 @@
|
||||
/*! Hammer.JS - v2.0.8 - 2016-04-23
|
||||
* http://hammerjs.github.io/
|
||||
*
|
||||
* Copyright (c) 2016 Jorik Tangelder;
|
||||
* Licensed under the MIT license */
|
||||
!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(j(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(b,c,d){var e="DEPRECATED METHOD: "+c+"\n"+d+" AT \n";return function(){var c=new Error("get-stack-trace"),d=c&&c.stack?c.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&la(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==oa?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function s(a){return Array.prototype.slice.call(a,0)}function t(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];r(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ma.length;){if(c=ma[g],e=c?c+f:b,e in a)return e;g++}return d}function v(){return ua++}function w(b){var c=b.ownerDocument||b;return c.defaultView||c.parentWindow||a}function x(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){k(a.options.enable,[a])&&c.handler(b)},this.init()}function y(a){var b,c=a.options.inputClass;return new(b=c?c:xa?M:ya?P:wa?R:L)(a,z)}function z(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&Ea&&d-e===0,g=b&(Ga|Ha)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,A(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function A(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=D(b)),e>1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=ra(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=qa(j.x)>qa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==Ea&&f.eventType!==Ga||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ha&&(i>Da||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=qa(l.x)>qa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:pa(a.pointers[c].clientX),clientY:pa(a.pointers[c].clientY)},c++;return{timeStamp:ra(),pointers:b,center:E(b),deltaX:a.deltaX,deltaY:a.deltaY}}function E(a){var b=a.length;if(1===b)return{x:pa(a[0].clientX),y:pa(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:pa(c/b),y:pa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Ia:qa(a)>=qa(b)?0>a?Ja:Ka:0>b?La:Ma}function H(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ra)+I(a[1],a[0],Ra)}function K(a,b){return H(b[0],b[1],Ra)/H(a[0],a[1],Ra)}function L(){this.evEl=Ta,this.evWin=Ua,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Xa,this.evWin=Ya,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=$a,this.evWin=_a,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ga|Ha)&&(c=t(c.concat(d),"identifier",!0)),[c,d]}function P(){this.evTarget=bb,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches)Line truncated
|
||||
//# sourceMappingURL=hammer.min.js.map
|
||||
@@ -0,0 +1,228 @@
|
||||
//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('<span style="color:#959595;margin-top:5px">网络异常,请重新发起支付</span>');
|
||||
},
|
||||
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()
|
||||
}
|
||||
Reference in new issue
Block a user