postman中設置全局動態sign簽名腳本


進入某個collection的全局edit設置:

 

在"Pre-request Scripts"選項卡設置全局腳本:

全局腳本貼上代碼:

 

function getCurrentDate() {
    var myDate=new Date();                               // 獲取當前時間戳
    var year = myDate.getFullYear();                         // 獲取年份
    var month = myDate.getMonth() + 1;                       // 獲取月份
    month = month < 10 ? "0" + month : month;
    var days = myDate.getDate();                             // 獲取日期
    days = days < 10 ? "0" + days : days;
    var hours = myDate.getHours() + 1;                       // 獲取時並+1
    var min = myDate.getMinutes();                           // 獲取分
    var seconds = myDate.getSeconds();                       // 獲取秒 
    hours = hours < 10 ? "0" + hours : hours;
    min = min < 10 ? "0" + min : min;
    seconds = seconds < 10 ? "0" + seconds : seconds;
 
    // 定義時間格式並設置為環境變量
    return year + "-" + month + "-" + days + " " + hours +":"+ min +":"+ seconds;
}

// appkey & secret code
var secretCode = 'ctw7i3cV6eu4pNCH3n4BMzkannNJX4jQ';
var timestamp = getCurrentDate();

// 設置全局請求域名地址,和項目上下文路徑
pm.environment.set("URL", "http://127.0.0.1:8080/ecoupon-redemption-system");
pm.environment.set("timestamp", timestamp);

// console.log("全部請求參數:" + request.data);
request.data["timestamp"] = timestamp;
var keys = Object.keys(request.data).sort() //請求參數名按照ASCII碼升序排序

//拼接待簽名字符串
var str = []
for (var p = 0; p < keys.length; p++) { 
    if(keys[p] == "sign" || keys[p] == "signmethod" || request.data[keys[p]] === ""){ // "==" ==寬松相等,隱性類型轉換,值相等,返回true; "===" 嚴格相等,值和類型都相等,返回true
        continue;
    }
    str.push(keys[p] + "=" + request.data[keys[p]]);
}
var signStr = str.join("&") + secretCode;
console.log("待加密字符串 signStr == " + signStr);


//MD5加密簽名規格,並賦值給環境變量`sign`
pm.environment.unset("sign");
var sign = CryptoJS.MD5(signStr).toString().toUpperCase();
console.log("計算出的簽名 sign == " + sign);
pm.environment.set("sign", sign);

 

在這里計算好的sign變量,在request里動態獲取值: {{sign}}

 

如果在script腳本中有使用console.log打印日志的情況,可以打開console控制台查看打印出來的日志: 

macbook蘋果筆記本電腦,點擊View -> Show Postman Console:

 

顯示console視圖:

 

end.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM