apifox 发起带签名的请求示例
时间: 2025-07-04 10:37:25 浏览: 6
Apifox 是一款集 API 调试、Mock、文档管理于一体的开发工具。当我们需要发起带签名的请求时,通常是针对某些安全需求较高的接口(如支付系统),这些接口会要求客户端对请求参数进行加密签名并附带到请求头或请求体中以保证数据完整性和来源可信度。
下面是一个简单的 Apifox 发起带签名 POST 请求的例子说明:
---
### 示例情景假设
目标 URL: `https://example.com/api/v1/order/create`
HTTP Method: POST
**签名规则:**
1. 参数按字典序排列;
2. 将排序后的键值拼接成字符串,并附加固定密钥 `key=your_secret_key`;
3. 对最终串使用 MD5 或 HMAC-SHA256 加密得到 signature;
4. 把这个 signature 放入 HTTP Header 的字段名为 Authorization。
---
### 步骤一 设置基础信息
在 Apifox 左侧选择新建一个 POST 类型 Request 后命名为“Create Order”。
然后填写完整的URL地址即上述提到的目标API路径。
---
### 步骤二 添加 Body 数据
切换至Body选项卡内选JSON模式输入类似以下内容作为发送的数据样本:
```json
{
"product_id": "1001",
"quantity": 2,
"amount": "98.00"
}
```
这里仅为示例,实际项目应依据服务器端规定调整相应结构与字段名。
---
### 步骤三 构建动态变量用于生成 Signatures
点击右上角"Pre-request Script"(预请求脚本),在这里编写一小段 JavaScript 来自动构造signature并且设置到 headers 中去。
例如采用HMAC SHA256的方式做签名:
```javascript
pm.environment.set("timestamp", Math.floor(Date.now() / 1000).toString());
// 获取 body json object
var jsonData = pm.request.body.json();
var keys = Object.keys(jsonData);
keys.sort(); // 字符顺序升序排布
var stringToSign = '';
for (var i in keys) {
var key = keys[i];
if (jsonData[key] !== '') { // 过滤空值
stringToSign += encodeURIComponent(key) + '=' + encodeURIComponent(jsonData[key]) + '&';
}
}
stringToSign = stringToSign.substring(0, stringToSign.length - 1); //去掉最后多余的 &
stringToSign += "&key=" + "your_secret_key"; // 加密私有秘钥
console.log(stringToSign)
// 引入 crypto 库来做哈希运算
const cryptoJsLibPath = 'lib/crypto-js.min.js'; // 假设你已加载了 crypto-js 第三方库文件
$.getScript(cryptoJsLibPath, function(){
const hash = CryptoJS.HmacSHA256(stringToSign,"your_secret_key").toString(CryptoJS.enc.Hex);
console.log(hash);
// 给header增加Authorization项
pm.request.headers.add({ key: 'Authorization', value:hash });
});
```
注意替换其中 `"your_secret_key"` 成真实的应用程序专属KEY!
同时确保你的环境中已经正确引用了 [CryptoJS](https://github.com/brix/crypto-js/) 相关资源链接来辅助完成复杂的密码学操作部分.
---
### 最终效果演示
当一切配置就绪之后每次触发该Request都会自动生成符合规范的新鲜Signature嵌套于Header之中传输给远程服务端接受校验处理。
阅读全文
相关推荐







