postman 自动化 前置加密串拼装

2020-04-14

postman 自动化

参考:原文地址

本人实践

我使用的是请求数据是json的 所以使用了 raw -》 json 模式 请求参数

{
    "param": "{{WW_1}}",
    "vv_str": "{{VV_1}}",
    "vv_str2": "{{VV_2}}"
}

Pre-request Script

var newtimestamp=Math.round(new Date()/1000);
var secret = pm.environment.get("秘钥")
//重设环境变量
pm.environment.unset("VV_2");
pm.environment.unset("VV_1");
pm.environment.set("VV_1", newtimestamp);

var requestData = JSON.parse(request.data);

//请求参数名按照ASCII码升序排序
keys = Object.keys(requestData).sort(); 
console.log(keys);
//拼接待签名字符串
var str = [];
for (var p = 0; p < keys.length; p++) { 
    if(keys[p] == "vv_str2" || requestData[keys[p]] === ""){
        // == 宽松相等,隐性类型转换,值相等,返回true;
        // === 严格相等,值和类型都相等,返回true
        continue;
    }
    if(keys[p] == "vv_str"){
        str.push(keys[p] + "=" + newtimestamp);
        continue;
    }
    str.push(keys[p] + "=" + requestData[keys[p]]);
}
console.log(str);
var presign = str.join("&");
console.log("presign:"+presign);
var signSecret = CryptoJS.MD5(presign).toString();  //md5
console.log("signSecret:"+signSecret);

//重设环境变量
pm.environment.set("VV_2", signSecret);