接口调用时会加签,在使用Postman debug的过程中,即使修改了一个参数,签名也会发生变化,而手动加签是一件重复枯燥的事情,所以自动加签是必要的。
自动加签主要依赖 Postman 对 Pre-request Script 的支持,可以在实际发送强求前做一些定制操作,自动加签就是一个典型的应用。
下面是我使用的 Script,可以作为参考。
// 我会把 appKey 和 secretKey 存放在环境变量里,因为不同环境下这两个值是不一样的。
let appkey = pm.environment.get("appKey");
let salt = pm.environment.get("secretKey");
let params = request.data; // post 参数
let getParams = pm.request.url.query.members; // get 参数
// 将post和get合并
for (let i in getParams) {
params[getParams[i].key] = getParams[i].value;
}
// 移除appkey、ts、sign参数
delete params.appkey
delete params.sign
delete params.ts
// 设置 appkey
params['appkey'] = appkey;
// 生成时间戳参数
let ts = (new Date()).getTime().toString();
// 设置时间戳
params['ts'] = ts;
// pm.environment.set("ts", params.time);
// 排序
params = objSort(params);
let paramStr