在 Postman 里处理 timestamp + 参数签名
核心思路是:
在请求发送前生成
timestamp按后端约定规则拼接参数字符串
用约定算法(如 MD5 / HMAC-SD256)生成 sign
把 timestamp 和 sign 自动加到请求里
一、常见签名规则示例
假设后端规则是:
1. 所有参数按 ASCII 排序 2. 拼接成 key=value&key=value 3. 最后拼接 secret 4. MD5 或 HMAC-SHA256
例如:
timestamp=1700000000 user_id=1001 secret=abc123
拼接成:
timestamp=1700000000&user_id=1001&secret=abc123
然后 sign
二、Postman 自动生成 timestamp + sign
打开:
Pre-request Script
写 JS 代码:
示例 :HMAC-SHA256 签名(要和后端一致)
const token = pm.environment.get(tokenKey) || '';
let params = {};
pm.request.url.query.each(param => {
params[param.key] = param.value;
});
if (pm.request.body?.urlencoded) {
pm.request.body.urlencoded.each(item => {
params[item.key] = item.value;
});
}
if (pm.request.body?.raw) {
try {
Object.assign(params, JSON.parse(pm.request.body.raw));
} catch (e) {}
}
let sortedKeys = Object.keys(params).sort();
let baseString = "";
sortedKeys.forEach(key => {
if (key !== "sign" && typeof params[key] !== "object") {
baseString += key + params[key];
}
});
let finalString = token + baseString + timestamp;
const CryptoJS = require('crypto-js');
let md5Str = CryptoJS.MD5(finalString).toString();
let sign = CryptoJS.SHA1(md5Str).toString();
pm.request.headers.add({ key: 'timestamp', value: timestamp });
pm.request.headers.add({ key: 'sign', value: sign });