All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.opendoc.sdk.js Maven / Gradle / Ivy

// MD5
var hexcase=0;var b64pad="";var chrsz=8;function hex_md5(s){return binl2hex(core_md5(str2binl(s),s.length*chrsz))}function b64_md5(s){return binl2b64(core_md5(str2binl(s),s.length*chrsz))}function str_md5(s){return binl2str(core_md5(str2binl(s),s.length*chrsz))}function hex_hmac_md5(key,data){return binl2hex(core_hmac_md5(key,data))}function b64_hmac_md5(key,data){return binl2b64(core_hmac_md5(key,data))}function str_hmac_md5(key,data){return binl2str(core_hmac_md5(key,data))}function md5_vm_test(){return hex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72"}function core_md5(x,len){x[len>>5]|=128<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i16){bkey=core_md5(bkey,key.length*chrsz)}var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++){ipad[i]=bkey[i]^909522486;opad[i]=bkey[i]^1549556828}var hash=core_md5(ipad.concat(str2binl(data)),512+data.length*chrsz);return core_md5(opad.concat(hash),512+128)}function safe_add(x,y){var lsw=(x&65535)+(y&65535);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&65535)}function bit_rol(num,cnt){return(num<>>(32-cnt))}function str2binl(str){var bin=Array();var mask=(1<>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32)}return bin}function binl2str(bin){var str="";var mask=(1<>5]>>>(i%32))&mask)}return str}function binl2hex(binarray){var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i>2]>>((i%4)*8+4))&15)+hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&15)}return str}function binl2b64(binarray){var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";for(var i=0;i>2]>>8*(i%4))&255)<<16)|(((binarray[i+1>>2]>>8*((i+1)%4))&255)<<8)|((binarray[i+2>>2]>>8*((i+2)%4))&255);
    for(var j=0;j<4;j++){if(i*8+j*6>binarray.length*32){str+=b64pad}else{str+=tab.charAt((triplet>>6*(3-j))&63)}}}return str};
/**
 //需要发布到服务器上运行,并且server端需要处理跨域
 //在IndexController.java上加@CrossOrigin(origins={"*"})

 sdk.config({
    url : 'http://localhost:8080/api'
    ,app_key : 'test'
    ,secret : '123456'
    ,jwt : 'xxx'
});

 sdk.post({
	name   : 'goods.get' // 接口名
// 	,version:'1.0'
// 	,access_token:''
	,data  : {'goods_name':'iphone'} // 请求参数
	,callback:function(resp) { // 成功回调
		console.log(resp)
	}
});

 sdk.post({
	name   : 'goods.get' // 接口名
	,data  : {'goods_name':'iphone'} // 请求参数
	,callback:function(resp) { // 成功回调
		console.log(resp)
	}
});
 */
;(function(){

    var config = {
        url : 'http://127.0.0.1:8080/api'
        ,app_key : 'test'
        ,secret : '123456'
        ,default_version : ''

        ,api_name : "name"
        ,version_name : "version"
        ,app_key_name : "app_key"
        ,data_name : "data"
        ,timestamp_name : "timestamp"
        ,sign_name : "sign"
        ,format_name : "format"
        ,access_token_name : "access_token"
        ,jwt : ''
    }

    var DEFAULT_FORMAT = 'json';
    var UPLOAD_FORM_DATA_NAME = 'body_data';
    var CONTENT_TYPE_JSON = 'application/json';

    var CONTENT_TYPE_KEY = 'Content-Type';
    var POST_TYPE = 'POST';
    var GET_TYPE = 'GET';

    function copy(source, target) {
        if (target && source && typeof source == 'object') {
            for (var p in source) {
                target[p] = source[p];
            }
        }
        return target;
    }

    function add0(m){return m<10?'0'+m:m }

    function formatDate(time)
    {
        var y = time.getFullYear();
        var m = time.getMonth()+1;
        var d = time.getDate();
        var h = time.getHours();
        var mm = time.getMinutes();
        var s = time.getSeconds();
        return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s);
    }

    /** 构建签名 */
    function buildSign(postData,secret) {
        if (typeof postData === 'string') {
            throw new Error('postData类型必须json对象');
        }
        var paramNames = [];
        for(var key in postData) {
            paramNames.push(key);
        }

        paramNames.sort();

        var paramNameValue = [];

        for(var i=0,len=paramNames.length;i= 200 && status < 300) || status == 304){
                        jsonData = JSON.parse(xhr.responseText);
                        callback(jsonData, paramStr);
                    } else {
                        jsonData = JSON.parse('{"message":"后台请求错误(status:' + status + ')"}');
                        console.log(xhr.responseText)
                        error(jsonData, paramStr);
                    }
                }
            };
            if (method == GET_TYPE) {
                var queryString = [];
                for (var key in params) {
                    var p = key + '=' + encodeURIComponent(params[key]);
                    queryString.push(p);
                }
                url = url + '?' + queryString.join('&');
            }

            xhr.open(method, url, true);

            // 添加header
            if(headers) {
                for (var key in headers) {
                    xhr.setRequestHeader(key,headers[key]);
                }
            }
            var postData = null;
            if(method == POST_TYPE) {
                if(form) {
                    var formData = new FormData(form);
                    // 添加json
                    formData.append(UPLOAD_FORM_DATA_NAME, paramStr);
                    postData = formData;
                } else {
                    xhr.setRequestHeader(CONTENT_TYPE_KEY, CONTENT_TYPE_JSON);
                    postData = paramStr;
                }
            }
            // 发送请求
            xhr.send(postData);
        }
        /**
         * 创建XHR对象
         * @private
         */
        ,createXhrObject:function() {
            var methods = [
                function(){ return new XMLHttpRequest();}
                ,function(){ return new ActiveXObject('Msxml2.XMLHTTP');}
                ,function(){ return new ActiveXObject('Microsoft.XMLHTTP');}
            ];

            var xhr = null;
            for(var i=0,len=methods.length; i




© 2015 - 2024 Weber Informatics LLC | Privacy Policy