版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

签名帮助(sha1算法)(使用postman调试接口)

第一步:填写参数Image Removed

Image Added

第二步:填写脚本

脚本:

代码块
languagejs
themeRDarkMidnight
titleGET请求脚本
linenumberstrue
collapsetrue
/**
 * 通过request.data获取body的内容,这个是postman内置变量
 * 常用内置参数如下:
 * request 获取请求的参数,包括头和请求体
 * responseHeaders 返回值的header
 * responseBody 返回值的body
 * responseCode 返回值的http code
 */


var params = pm.request.url.query.members;
// console.log("params:",paramsvar map = new Map();
map.set("secret","89908acc57d64110b0b805977244d5c6")
var maptimestamp = Date.parse(new MapDate());
map.set("timestamp",timestamp)
for (var i=0; i<params.length; i++)
{
    // console.log(params[i])
    if(params[i].key=="signature"){
        console.log("--------------")
        continue
    }
    if(params[i].key=="timestamp"){
        // let time2 = new Date().getTime(); 
        console.log(time2"------------------")
        // map.set(params[i].key,time2)
        continue
    }
    map.set(params[i].key,params[i].value)
}
console.log(map)
var arrayObj=Array.from(map);
arrayObj.sort(function(a,b){return a[0].localeCompare(b[0])})
console.log(arrayObj)
// //body中参数放入数组
// var list = [params.subsystemId,params.clientId,params.account,params.timestamp];
// console.log("list---->" + list);

// // 字段排序:这里建议使用默认的排序,优先比较字符的第一个,相同则比对第二个...
// //list.sort(function(a, b){
//     //return b-a;  //数字的排序
// //    return b.localeCompare(a); //字符串排序
// //});
// console.log("list ---->" + list);

//字段重新组装拼接
var tmp='';
for(var i=0;i<arrayObj.length;i++){
    tmp += arrayObj[i][0]+"="+arrayObj[i][1]+"&";
}
tmp = tmp.substring(0,tmp.lastIndexOf("&"))
console.log("tmp ---->" + tmp);

//生成签名串:这里使用SHA1算法并使用十六进制编码
//CryptoJS-为JavaScript提供了各种各样的加密算法
//作者:CryptoJS<>(https://code.google.com/p/crypto-js/)
// var signHmacSHA1=CryptoJS.SHA1(tmp).toString(CryptoJS.enc.Hex).toUpperCase();
var signHmacSHA1=CryptoJS.SHA1(tmp).toString(CryptoJS.enc.Hex);
console.log("sign ---->" + signHmacSHA1);

//放入环境变量
//pm.environment.set("sha1msg",signHmacSHA1)
postman.setGlobalVariable("signature", signHmacSHA1);
postman.setGlobalVariable("timestamp", timestamp);