标签:amp ade UNC cas environ code pos multi signed
//获取当前时间的时间戳 function getTimestamp(len=10) { // 如果需要自动获取则将此处代码放开 // var tmp = Date.parse( new Date() ).toString(); // tmp = tmp.substr(0,len); //return tmp; return ‘1546571642‘ } //时间戳换算时间 function timestampToTime(timestamp) { //时间戳为10位需*1000,时间戳为13位的话不需乘1000 let date = new Date(timestamp * 1000); let Y = date.getFullYear() + ‘-‘; let M = (date.getMonth()+1 < 10 ? ‘0‘+(date.getMonth()+1) : date.getMonth()+1) + ‘-‘; let D = date.getDate() > 10 ? date.getDate():‘0‘+date.getDate(); return Y+M+D; } // 秘钥ID let SecretId = ‘XXXXXXXXXXX‘; // 秘钥key let SecretKey = ‘XXXXXXXXXXXXX‘; // 服务器地址 let host = ‘timatrix.tencentcloudapi.com‘; // 产品名 let service = ‘timatrix‘; // 时间戳 let RequestTimestamp = getTimestamp(10); //提交方式 let HTTPRequestMethod = request.method; // Content-Type数据类型 let contentType = ‘multipart/form-data‘ let CanonicalURI = ‘/‘; let CanonicalQueryString = ‘‘; let CanonicalHeaders ; if(HTTPRequestMethod == "POST" || HTTPRequestMethod == "post"){ // contentType = ‘multipart/form-data‘ // CanonicalHeaders = ‘content-type:multipart/form-data\nhost:‘+host+‘\n‘; // 上面是文件 contentType = ‘application/json‘ CanonicalHeaders = ‘content-type:application/json\nhost:‘+host+‘\n‘; } else if (HTTPRequestMethod == "GET" || HTTPRequestMethod == "get"){ contentType = ‘application/x-www-form-urlencoded‘ CanonicalHeaders = ‘content-type:application/x-www-form-urlencoded\nhost:‘+host+‘\n‘; } else { contentType = ‘application/json‘ CanonicalHeaders = ‘content-type:application/json\nhost:‘+host+‘\n‘; } let SignedHeaders = ‘content-type;host‘; let RequestPayload = ‘‘; let HashedRequestPayload = CryptoJS.SHA256(encodeURIComponent(RequestPayload)); let CanonicalRequest = HTTPRequestMethod + ‘\n‘ + CanonicalURI + ‘\n‘ + CanonicalQueryString + ‘\n‘ + CanonicalHeaders + ‘\n‘ + SignedHeaders + ‘\n‘ + HashedRequestPayload; let Algorithm = ‘TC3-HMAC-SHA256‘; let CredentialScope = timestampToTime(RequestTimestamp)+‘/‘+service+‘/tc3_request‘; let HashedCanonicalRequest = CryptoJS.SHA256(CanonicalRequest); let StringToSign = Algorithm + ‘\n‘ + RequestTimestamp + ‘\n‘ + CredentialScope + ‘\n‘ + HashedCanonicalRequest; let SecretDate = CryptoJS.HmacSHA256(timestampToTime(RequestTimestamp),"TC3" + SecretKey); let SecretService = CryptoJS.HmacSHA256(service,SecretDate); let SecretSigning = CryptoJS.HmacSHA256("tc3_request",SecretService); let Signature = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA256(StringToSign,SecretSigning)); Signature = Signature.toLowerCase() let Authorization = Algorithm + ‘ ‘ + ‘Credential=‘ + SecretId + ‘/‘ + CredentialScope + ‘, ‘ + ‘SignedHeaders=‘ + SignedHeaders + ‘, ‘+ ‘Signature=‘ + Signature postman.setEnvironmentVariable(‘host‘, host); postman.setEnvironmentVariable(‘contentType‘, contentType); postman.setEnvironmentVariable(‘RequestTimestamp‘, RequestTimestamp); postman.setEnvironmentVariable(‘Authorization‘, Authorization);
标签:amp ade UNC cas environ code pos multi signed
原文地址:https://www.cnblogs.com/ChineseLiao/p/10257088.html