yqb
Version:
Static Package Manager
833 lines (710 loc) • 40 kB
JavaScript
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
var CryptoJS=CryptoJS||function(u,p){var d={},l=d.lib={},s=function(){},t=l.Base={extend:function(a){s.prototype=this;var c=new s;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
r=l.WordArray=t.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var c=this.words,e=a.words,j=this.sigBytes;a=a.sigBytes;this.clamp();if(j%4)for(var k=0;k<a;k++)c[j+k>>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535<e.length)for(k=0;k<a;k+=4)c[j+k>>>2]=e[k>>>2];else c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],e=0;e<a;e+=4)c.push(4294967296*u.random()|0);return new r.init(c,a)}}),w=d.enc={},v=w.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++){var k=c[j>>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j+=2)e[j>>>3]|=parseInt(a.substr(j,
2),16)<<24-4*(j%8);return new r.init(e,c/2)}},b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++)e.push(String.fromCharCode(c[j>>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j++)e[j>>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new r.init(e,c)}},x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}},
q=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,e=c.words,j=c.sigBytes,k=this.blockSize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q<a;q+=k)this._doProcessBlock(e,q);q=e.splice(0,a);c.sigBytes-=j}return new r.init(q,j)},clone:function(){var a=t.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});l.Hasher=q.extend({cfg:t.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new n.HMAC.init(a,
e)).finalize(b)}}});var n=d.algo={};return d}(Math);
(function(){var u=CryptoJS,p=u.lib.WordArray;u.enc.Base64={stringify:function(d){var l=d.words,p=d.sigBytes,t=this._map;d.clamp();d=[];for(var r=0;r<p;r+=3)for(var w=(l[r>>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v<p;v++)d.push(t.charAt(w>>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w<
l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();
(function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<<j|b>>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<<j|b>>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<<j|b>>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<<j|b>>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])},
_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]),
f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f,
m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m,
E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/
4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math);
(function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length<q;){n&&s.update(n);var n=s.update(d).finalize(r);s.reset();for(var a=1;a<p;a++)n=s.finalize(n),s.reset();b.concat(n)}b.sigBytes=4*q;return b}});u.EvpKDF=function(d,l,p){return s.create(p).compute(d,
l)}})();
CryptoJS.lib.Cipher||function(u){var p=CryptoJS,d=p.lib,l=d.Base,s=d.WordArray,t=d.BufferedBlockAlgorithm,r=p.enc.Base64,w=p.algo.EvpKDF,v=d.Cipher=t.extend({cfg:l.extend(),createEncryptor:function(e,a){return this.create(this._ENC_XFORM_MODE,e,a)},createDecryptor:function(e,a){return this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfg=this.cfg.extend(b);this._xformMode=e;this._key=a;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return this._process()},
finalize:function(e){e&&this._append(e);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return("string"==typeof k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return("string"==typeof k?c:a).decrypt(e,b,k,d)}}}});d.StreamCipher=v.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var b=p.mode={},x=function(e,a,b){var c=this._iv;c?this._iv=u:c=this._prevBlock;for(var d=0;d<b;d++)e[a+d]^=
c[d]},q=(d.BlockCipherMode=l.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._cipher=e;this._iv=a}})).extend();q.Encryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlock=e.slice(a,a+c)}});q.Decryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize,d=e.slice(a,a+c);b.decryptBlock(e,a);x.call(this,
e,a,c);this._prevBlock=d}});b=b.CBC=q;q=(p.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,d=c<<24|c<<16|c<<8|c,l=[],n=0;n<c;n+=4)l.push(d);c=s.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,
this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684,
1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})},
decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d,
b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}();
(function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8,
16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j<a;j++)if(j<d)e[j]=c[j];else{var k=e[j-1];j%d?6<d&&4==j%d&&(k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;d<a;d++)j=a-d,k=d%4?e[j]:e[j-4],c[d]=4>d||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>>
8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r<m;r++)var q=d[g>>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t=
d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})();
/*
* 数据采集脚本
* author: <%= author %>
* version: <%= version %>
* website: http://www.431103.com
*/
/*
使用方法
1.引入js
<script type="text/javascript" src="framework/js/webCollection.js"></script>
2.需要埋点的json数据
TJ.update("eventid",{"activityId":"", "phone":""})
3. body加入channelId属性,区分不同业务channelId
<body data-channelId="H-100001">
[{"headers":{"ts":1453214798810,"h":"0.0.0.0","enc":"true"},"body":"gmaezQf0XqJENu11HE5ZuHC1w1As02tCCKf9A6wv7hKjdhk3mL3kN2HqmynCPtfoPqqNPmkCxcNumFF4M54isvli2CDnO9k5g+QhBx1A1/PnOgSpievnjhbAO9rbqTMBCZDfvfI16k/dqDPEtiey2OZCV59rYytCyrXyXf2qH1Aa4wBktor3w5OyDMmFdnChO3kHSPF70YAkD1YppRUILFpw1qJeLGrtRaEzLUtC3T8CUX4X/c5F0ZbX0csQZUqG6ShDaur9vJdXhvkyRVBPXTsMxZYOKmH0B3ftpn33iwbUWBQWPwwmD9rxE1aYwme3wpzZDKaNWlxK4xyybjDeeabyt/M6XHby/GRVbB6XKoe8JyeiKdqZn1NbSzUjZHerOpzOpD5fdlGH9qMJ1n7Apj0EOl9Pmgol7qcdLVMwR0eetsuZFGaOe3y3A/ozbxbntI1sbxXrjmCRvf1qsqTeh4lpNq7Bw/J51jnGUbgzRe0eUtisstXgXxeezJbVtGkEjv2bAqzfbNHkecHVe71rgMWpIIGg9rR8u8bv9fiMB8+ZMzkd0d7ijxEZW5ABMs5uL7PVs4tzBP7p+2vYA232TkNtfUtYkkiU9XhyOkw1DQnRk0maaRQXQZwbIq1lKp60ca3ZQkCHD13No3ygrM/wpH4F+91VQR/tXYrKbbrFqR0="}]
Name
*/
(function(root, factory) {
if (typeof exports === 'object') {
factory(exports);
} else if (typeof define === 'function' && define.amd) {
define(['exports'], factory);
} else {
factory(root);
}
}(this, function(exports) {
var version = 'v1.0.0';
var tools = {
ajax: function(url, data, resolve, reject, method) {
var request = new XMLHttpRequest();
if (!request) {
throw new Error('XMLHttpRequest');
}
request.onreadystatechange = function() {
if (request.readyState === 4) {
if (request.status === 200) {
// resolve.call(this, JSON.parse(request.responseText));
} else if (request.status >= 400) {
var data = {
resultCode: '9999',
resultMsg: '网络异常,请稍后再试。'
};
reject.call(this, data);
}
}
}
request.open('post', url, true);
// request.withCredentials = true;
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
// request.overrideMimeType('text/plain');
request.send(JSON.stringify(data));
},
setCookie: function(name, value, expireHours) {
var cookieString = name + "=" + escape(value);
if (expireHours > 0) {
if (expireHours > 5) {
var date = new Date();
date.setMonth(date.getMonth() + expireHours);
cookieString = cookieString + ";expires=" + date.toGMTString() + ";path=/;"
} else {
cookieString = cookieString + ";path=/;"
}
};
document.cookie = cookieString;
},
getCookie: function(name) {
var strcookie = document.cookie;
var arrcookie = strcookie.split("; ");
for (var i = 0; i < arrcookie.length; i++) {
var arr = arrcookie[i].split("=");
if (arr[0] == name)
return unescape(arr[1])
};
return "";
},
getTime: function(){
return new Date().getTime();
},
getUrl: function(){
return document.URL;
},
getReferrer: function(){
return document.referrer;
},
getBrowserInfo: function() {
var Sys = {};
var agent = navigator.userAgent;
var browser = {
versions: function() {
var u = navigator.userAgent;
return {
mobile: !!u.match(/AppleWebKit.*Mobile.*/),
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1,
iPad: u.indexOf('iPad') > -1
}
}()
};
if (browser.versions.android) {
return 'Android|Android'
} else if (browser.versions.iPhone) {
return 'iPhone|iPhone'
} else if (browser.versions.iPad) {
return 'iPad|iPad'
};
var ua = agent.toLowerCase();
var s;
(s = ua.match(/qqbrowser\/([\d.]+)/)) ? Sys.qq = s[1]: (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] : (s = ua.match(/taobrowser\/([\d.]+)/)) ? Sys.tao = s[1] : (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] : (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] : (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
if (Sys.ie) {
return 'IE' + s[1] + "|Microsoft"
} else if (Sys.firefox) {
return 'Firefox' + "|Mozilla"
} else if (Sys.qq) {
return 'QQ' + "|Tencent"
} else if (Sys.tao) {
return 'Tao' + "|Alibaba"
} else if (Sys.chrome) {
return 'Chrome' + "|Google"
} else if (Sys.opera) {
return 'Opera' + "|Opera"
} else if (Sys.safari) {
return 'Safari' + "|Apple"
} else {
return 'IE' + "|Micsoft"
}
},
getBrowser: function() {
var macAndLan = this.getBrowserInfo().split('|');
return {
manufacture: macAndLan[1],
model:macAndLan[0]
}
},
getLanguage: function() {
var language = navigator.language;
if (navigator.appName != 'Netscape') {
language = navigator.browserLanguage;
}
switch (language) {
case 'zh-CN':
return 'ZN';
break;
default:
return language;
break
}
},
urlEncode: function(sStr){
return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g, '%22').replace(/\'/g, '%27').replace(/\//g, '%2F');
},
encryption: function(decryptedStr) {
var srcs = CryptoJS.enc.Utf8.parse(decryptedStr),
options = this._prepareOptions('0102030405060708', '0102030405060708');
var encrypted = CryptoJS.AES.encrypt(srcs, options.key, {
iv: options.iv,
mode: options.mode,
padding: options.pad
});
return encrypted.toString();
},
decryption: function(encryptedStr) {
// var key = "P1ngan0P";
// var iv = "Zh1fup0y";
// var keyHex = CryptoJS4DES.enc.Utf8.parse(key);
// var ivHex = CryptoJS4DES.enc.Utf8.parse(iv);
// var decrypted = CryptoJS4DES.DES.decrypt({
// ciphertext: CryptoJS4DES.enc.Hex.parse(encryptedStr)
// }, keyHex, {
// iv: ivHex,
// mode: CryptoJS4DES.mode.CBC,
// padding: CryptoJS4DES.pad.Pkcs7
// });
// var result = decrypted.toString(CryptoJS4DES.enc.Utf8);
// return result;
var srcs = CryptoJS.enc.Utf8.parse(encryptedStr),
options = this._prepareOptions('P1ngan0P', 'Zh1fup0y');
var decrypted = CryptoJS.AES.decrypt(srcs, options.key, {
iv: options.iv,
mode: options.mode,
padding: options.pad
});
return CryptoJS.enc.Utf8.stringify(decrypted);
},
_prepareOptions: function(key, iv, mode, pad) {
return {
key:CryptoJS.enc.Utf8.parse(key),
iv:CryptoJS.enc.Utf8.parse(iv),
mode: CryptoJS.mode.CBC,
pad: CryptoJS.pad.Pkcs7
};
},
getUid: function(len, radix) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
var uuid = [],
i;
radix = radix || chars.length;
if (len) {
for (i = 0; i < len; i++)
uuid[i] = chars[0 | Math.random() * radix]
} else {
var r;
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]
}
}
};
return uuid.join('');
},
getlid: function() {
var rnd = "";
for (var i = 0; i < 9; i++){
rnd += Math.floor(Math.random() * 10);
}
return rnd;
},
getScreen: function() {
var width = window.screen.height;
var height = window.screen.width;
return width + '*' + height;
},
merge: function(source, target){
for(var i in target) {
source[i] = target[i];
}
return source;
}
}
var tongjing = function(channelId, options) {
this.onInit = null;
this.onUpadate = null;
this.appId = '6fYG0kV6gd';
this.channelId = channelId || '3I843W45C4';
this.appVersion = '2.0';
this.sessionId = '';
this.deviceId = '';
// 存储扩展参数
this.extra = {};
if (typeof channelId == 'object' || typeof options == 'object') {
tools.merge(this, options);
}
//
this.setAppId(this.appId);
this.setChannelId(this.channelId);
this.init();
};
tongjing.prototype = {
init: function(onInit) {
var logType = this.getLogType();
if(logType == '' || logType == null || logType == undefined) {
this.setLogType(1);
this.startSession();
this.sendInitiativeLog();
}
// 扩展数据
this._getCurrentExtraData();
this.setLogType(3);
this.setReferrer();
this.setUrl(tools.getTime());
tools.setCookie('entry', tools.getTime(), 2);
this.setUrl(document.URL);
this.sendPassiveLog();
},
_getCurrentExtraData: function() {
// 扩展数据
var userId = this.extra.customerId;
if(userId) {
this.setUserId(this.extra.customerId);
}
var promotionName = this.getPromotionName();
if(promotionName) {
this.extra.promotionName = promotionName;
}
var promotionId = this.getPromotionID();
if(promotionId) {
this.extra.promotionId = this.getPromotionID();
}
var pageName = this.getPageName();
if(pageName) {
this.extra.pageName = this.getPageName();
}
// 壹钱包客户端数据
this.getAppEncryptStr();
this.setLogId(tools.getlid());
// 自定义扩展数据
this.setExtra(JSON.stringify(this.extra));
},
startSession: function() {
var sessionId = this.getSessionId();
if (sessionId == "" || sessionId == null || sessionId == undefined) {
this.setSessionId(tools.getUid());
}
var deviceId = this.getDeviceId();
if (deviceId == "" || deviceId == null || deviceId == undefined) {
this.setDeviceId(tools.getUid());
}
},
setAppEncryptStr: function(encryptStr){
var result = tools.decryption(encryptStr);
// result 返回异常处理,未处理
if (result != null & result != "") {
this.extra.appiI4App = result.appid;
this.extra.customerId4App = result.customerid;
this.extra.sessionId4App = result.sessionid;
this.extra.appVersion4App = result.appver;
this.extra.deviceId4App = result.deviceid;
this.extra.channelId4App = result.channelid;
}
// debug
// this.extra.appiI4App = 1;
// this.extra.customerId4App = 2;
// this.extra.sessionId4App = 3;
// this.extra.appVersion4App = 4;
// this.extra.deviceId4App = 5;
// this.extra.channelId4App = 6;
},
// bug
getAppEncryptStr: function() {
var userTracker = '';
setTimeout(function() {
try {
userTracker = window.YiQianBao.getUserTracker();
} catch (e) {
userTracker = '';
}
}, 50);
// try {
// userTracker = window.YiQianBao.getUserTracker();
// if(userTracker == undefined) {
// this.getAppEncryptStr();
// }
// } catch (e) {
// userTracker = '';
// }
if(userTracker != '' || userTracker != undefined || userTracker != null) {
this.setAppEncryptStr(userTracker);
}
return userTracker;
},
setPageName: function(pageName) {},
getPageName: function() {},
setPromotionID: function(promotionId) {
tools.setCookie('promotipromotionIdonName', promotionName, 2);
},
getPromotionID: function() {
var promotionId = tools.getCookie('promotionId');
return promotionId;
},
setPromotionName: function(promotionName) {
tools.setCookie('promotionName', promotionName, 2);
},
getPromotionName: function() {
var promotionName = tools.getCookie('promotionName');
return promotionName;
},
sendPassiveLog: function() {
var av = this.av;
var data = {};
data.sv = '2.1.6';
data.lt = tools.getTime();
data.ts = tools.getTime();
// 获取当前app版本
data.aid = this.getAppId();
data.ac = this.getChannelId();
data.sid = this.getSessionId();
data.av = this.getAppVersion();
data.lid = this.getLogId();
data.did = this.getDeviceId();
data.t = this.getLogType();
data.uid = this.getUserId();
data.nt = '';
data.ip = '0.0.0.0';
data.extra = this.getExtra();
if(data.t == 3) {
data.url = this.getUrl();
data.ref = this.getReferrer();
data.et = tools.getTime();
} else if(data.t == 4) {
data.url = this.getUrl();
} else if(data.t == 5) {
data.url = this.getUrl();
data.ref = this.getReferrer();
data.et = this.getSelfDefineEntry();
data.ex = this.getSelfDefineExit();
data.gp = this.getGroup();
data.eid = this.getEventId();
}
this.sendLog(data);
},
setSelfDefineEntry: function(selfdefineentry) {
tools.setCookie('selfdefineentry', selfdefineentry, 2);
},
getSelfDefineEntry: function() {
var selfdefineentry = tools.getCookie('selfdefineentry');
return selfdefineentry;
},
setSelfDefineExit: function(selfdefineexit){
tools.setCookie('selfdefineexit', selfdefineexit, 2);
},
getSelfDefineExit: function(){
var selfdefineexit = tools.getCookie('selfdefineexit');
return selfdefineexit;
},
sendInitiativeLog: function() {
var data = {};
data.av = this.getAppVersion();
data.sv = '2.1.6';
data.sid = this.getSessionId();
data.t = this.getLogType();
data.ac = this.getChannelId();
data.aid = this.getAppId();
data.did = this.getDeviceId();
data.uid = this.getUserId();
data.lid = tools.getlid();
data.lt = tools.getTime();
data.lg = tools.getLanguage();
data.maf = tools.getBrowser().manufacture;
data.m = tools.getBrowser().model;
data.srn = tools.getScreen();
data.ua = navigator.userAgent;
data.mmc = 0;
data.mnc = 0;
data.lac = 0;
data.cid = 0;
data.crk = 0;
data.imsi = "";
data.imei = "";
data.mac = "";
data.sdk = "";
data.cpu = "";
data.mem = "";
data.nt = "";
data.loc = "";
data.ip = "0.0.0.0";
this.sendLog(data);
},
setGroup: function(group){
tools.setCookie("group", group, 2);
},
getGroup: function(){
var group = tools.getCookie('group');
return group;
},
setEventId: function(evnetId){
tools.setCookie("eventId", evnetId, 2);
},
getEventId: function(){
var eventId = tools.getCookie('eventId');
return eventId;
},
setExtra: function(extra) {
tools.setCookie("extra", extra, 2);
},
getExtra: function() {
var extra = tools.getCookie('extra');
if(typeof extra != 'object') {
extra = JSON.parse(extra);
}
return extra;
},
setUrl: function(enterUrl) {
tools.setCookie("enterUrl", enterUrl, 2);
},
getUrl: function() {
var enterUrl = tools.getCookie('enterUrl');
return enterUrl;
},
setReferrer: function() {
var referrer = document.referrer;
tools.setCookie("referrer", referrer, 2);
},
getReferrer: function() {
var referrer = tools.getCookie('referrer');
return referrer;
},
setLogType: function(logType) {
tools.setCookie("logType", logType, 2);
},
getLogType: function() {
var logType = tools.getCookie('logType');
return logType;
},
setUserId: function(userId) {
tools.setCookie("userId", userId, 2);
},
getUserId: function() {
var userId = tools.getCookie('userId');
return userId;
},
setAppId: function(appId) {
this.appId = appId;
tools.setCookie("appId", appId, 2);
},
getAppId: function() {
var appId = tools.getCookie('appId');
return appId;
},
setAppVersion: function(appVersion) {
this.appVersion = appVersion;
tools.setCookie("appVersion", appVersion, 2);
},
getAppVersion: function(){
var appVersion = tools.getCookie('appVersion');
if(!appVersion) {
appVersion = this.appVersion;
}
return appVersion;
},
setChannelId: function(channelId) {
this.channelId = channelId;
tools.setCookie('channelId',this.channelId, 2);
},
getChannelId: function() {
var channelId = tools.getCookie('channelId');
if(!channelId) {
channelId = this.channelId;
}
return channelId;
},
setDeviceId: function(deviceId) {
this.deviceId = deviceId;
tools.setCookie("deviceId", deviceId, 2);
},
getDeviceId: function() {
var deviceId = tools.getCookie('deviceId');
return deviceId;
},
setSessionId: function(sessionId) {
this.sessionId = sessionId;
tools.setCookie('sessionId',sessionId, 2);
},
getSessionId: function(){
var sessionId = tools.getCookie('sessionId');
return sessionId;
},
setLogId: function() {
var logId = tools.getlid();
tools.setCookie('logId',logId, 2);
},
getLogId: function() {
var logId = tools.getCookie('logId');
return logId;
},
update: function(eventId, value){
this.click(eventId, value);
},
click: function(eventId, value, group) {
if(!eventId) return false;
var self = this,
tool = tools;
tools.merge(self.extra, value);
self.setEventId(eventId);
self._getCurrentExtraData();
self.setLogType(5);
self.setSelfDefineEntry(tool.getTime());
self.setSelfDefineExit(tool.getTime());
if(!group) {
group = '';
}
self.setGroup(group);
self.sendPassiveLog();
},
_sendClickLogData: function(data) {
var url = this.getServerURL();
var img = document.createElement('img');
img.src = url + '?trace=' + tools.urlEncode(data);
},
_sendloadLogData: function(data) {
var url = this.getServerURL();
var postData = [{
"headers": {
"ts": tools.getTime(),
"h": "0.0.0.0",
"enc": "true"
},
"body": data
}];
tools.ajax(url, postData, function(data) {
}, function(data) {
});
},
sendLog: function(data) {
var transLog = JSON.stringify(data);
// 将数据进行加密
var encTransLog = tools.encryption(transLog);
if(data.t == 5) {
this._sendClickLogData(encTransLog);
} else {
this._sendloadLogData(encTransLog);
}
// 测试环境默认打开调试日记
if(!this.isProduction()) {
this.openDebug(data);
}
},
getServerURL: function() {
var url = "https://ubasweb.1qianbao.com/";
var production = this.isProduction();
if(!production) {
url = "https://ppe-ubasweb.1qianbao.com/";
}
console.log('%c \u6B64\u6D4F\u89C8\u5668\u529F\u80FD\u4E13\u4F9B\u5F00\u53D1\u8005\u4F7F\u7528\u3002\u8BF7\u4E0D\u8981\u5728\u6B64\u7C98\u8D34\u6267\u884C\u4EFB\u4F55\u5185\u5BB9\uFF0C\u8FD9\u53EF\u80FD\u4F1A\u5BFC\u81F4\u60A8\u7684\u8D26\u6237\u53D7\u5230\u653B\u51FB\uFF0C\u7ED9\u60A8\u5E26\u6765\u635F\u5931\20\uFF01', 'color:#fff;');
return url;
},
openDebug: function(data) {
var tStr = "";
var alertInfo = "-----------------------------------------------------------------------------" + "\n";
alertInfo += "数据采集: " + "\n";
if (data.t == 1) {
tStr = "初次访问"
} else if (data.t == 3) {
tStr = "进入页面"
} else if (data.t == 5) {
tStr = "事件"
}
var tStr = alertInfo += "[消息类型]: " + tStr + "\n";
alertInfo += "[应用标识]: " + data.aid + "\n";
alertInfo += "[渠道标识]: " + data.ac + "\n";
alertInfo += "[当前地址]: " + data.url + "\n";
alertInfo += "[访问来源]: " + data.ref + "\n";
alertInfo += "[事件标识]: " + (data.eid == undefined ? "" : data.eid) + "\n";
alertInfo += "[用户标识]: " + (data.uid == "undefined" ? "" : data.uid) + "\n";
alertInfo += "[扩展字段]: " + JSON.stringify(data.extra) + "\n";
alertInfo += "-----------------------------------------------------------------------------" + "\n";
console.info(alertInfo);
// console.info(data);
},
isProduction: function() {
var pageUrl = document.URL;
if (pageUrl.indexOf("test") != -1 && pageUrl.indexOf("stg") != -1) {
return false;
}
if (pageUrl.indexOf("localhost") != -1 || pageUrl.indexOf("192.168") != -1) {
return false;
}
},
getWebCollection: function(onSuccess) {
var url = null;
if (/https/i.test(window.location.protocol)) {
url = "https://ms.1qianbao.com/uba/webCollection.js";
} else {
url = "http://d.1qianbao.com/uba/webCollection.js";
}
var script = document.createElement('script');
script.src = url;
script.onload = function(){
if(onSuccess) onSuccess();
}
document.body.appendChild(script);
},
getUrlParms: function() {
var args = new Object();
var query = location.search.substring(1);
if (query == "") {
query = location.hash.substring(1);
}
var pairs = query.split("&");
for (var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('=');
if (pos == -1) continue;
var argname = pairs[i].substring(0, pos);
var value = pairs[i].substring(pos + 1);
args[argname] = unescape(value);
}
return args;
}
}
window.tj = tongjing;
exports.TJ = new tongjing(document.body.getAttribute('data-channelid'));
return TJ;
}));