最近使用postman调试接口时,遇到个问题,接口需要签名。每次调试的时候都需要服务端来查看签名然后再提交到postman里面进行请求,非常麻烦!
查看官方文档,发现了Pre-Request Script这个工具,就研究了下,下面是具体实现的步骤。
参数部分.png
脚本部分.png
话不多说,上代码!代码逻辑是获取参数后排序后和秘钥拼接,然后md5转大写,由于js不熟,以下代码有点繁琐!
//pm.collectionVariables.set("time", new Date())
var paramKey = [];
var paramQuery = '';
var data = {};
// 获取请求部分的参数
if ('POST' == pm.request.method) {
data = pm.request.body.urlencoded.toObject();
} else {
data = pm.request.url.query.toObject();
}
// 把参数放入数组进行key排序
for (item in data) {
if ('sign' == item) {
continue;
}
paramKey.push(item);
}
paramKey.sort();
for (const key of paramKey) {
if (data.hasOwnProperty(key)) {
paramQuery += key + '=' + data[key] + '&'
}
}
paramQuery += 'key=' + pm.environment.get("key_" + data['partner_id']);
var sign = CryptoJS.MD5(paramQuery).toString().toUpperCase();
pm.collectionVariables.set("sign", sign);
//pm.environment.set("sign", sign);
参考文档:https://learning.postman.com/docs/writing-scripts/
网友评论