当您需要通过 API 自动生成并发送密钥给客户时,可以为商品配置 API 调用参数。本文将详细介绍 API 配置的各项参数和签名验证机制。
启用 API 模式
首先,您需要在商品编辑页面将密钥类型从「密钥」切换为「API」,保存后在仓库列表中点击该商品的「API 管理」进入配置页面。
API 管理配置页面
基本配置
| 参数 | 说明 |
|---|---|
| URL | API 请求地址,支持 GET 或 POST 方法 |
| 密码验证 | 可选择「明文密码」或「签名密钥」两种验证方式 |
签名验证机制
使用签名密钥可以确保请求的安全性和完整性。密钥仅存储于服务器端,不在网络传输过程中泄露。
安全说明
签名验证可确保接收到的请求未被篡改且来源可靠。如不设置密钥则签名验证不生效。
签名计算步骤
-
构造签名字符串将当前时间戳(毫秒)+
\n+ 密钥 拼接为签名字符串 -
计算 HMAC-SHA256使用 HmacSHA256 算法对签名字符串进行计算
-
Base64 编码对计算结果进行 Base64 encode
-
URL 编码对 Base64 结果进行 urlEncode(使用 UTF-8 字符集),得到最终签名
PHP 示例代码
PHP
<?php // 获取 13 位毫秒时间戳 list($msec, $sec) = explode(' ', microtime()); $msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000); // 签名密钥 $secret = "your_secret_key"; // 构造签名字符串 $str = "{$msectime}\n{$secret}"; // 计算 HMAC-SHA256(原始二进制数据) $hmacSha256 = hash_hmac('sha256', $str, $secret, true); // Base64 编码后 URL 编码 $signature = urlencode(base64_encode($hmacSha256)); var_dump($signature);
Request Headers
API 请求会包含以下 Headers 信息:
| Header | 值 | 说明 |
|---|---|---|
Content-Type |
application/json | 默认内容类型 |
User-Agent |
apsdai-hook | 固定值,用于标识来自 APSDAI 的请求 |
X-Apsdai-Token |
password / sign | 明文密码或计算后的签名 |
X-Apsdai-Timestamp |
1576754827988 | 触发 API 请求的时间戳(毫秒) |
自定义参数
Headers 自定义
点击「新增」可添加自定义 Header,填写 KEY 和 VALUE。
Body 自定义
Body 参数的 VALUE 可来源于仓库信息收集的数据。点击「新增」后填写 KEY 和 VALUE。
响应格式
✓ 成功响应
{
"code": "SUCCESS",
"message": "成功",
"data": {
"key": [
"xxxxxxx密钥1xxxxxxxxx",
"xxxxxxx密钥2xxxxxxxxx",
"xxxxxxx密钥3xxxxxxxxx"
]
}
}
✗ 失败响应
{
"code": "FAIL",
"message": "失败原因"
}
响应说明
成功:HTTP 状态码返回 200 或 204,可返回密钥数据或无需返回应答报文。
失败:HTTP 状态码返回非 200/204,或响应 code 为 FAIL。
失败:HTTP 状态码返回非 200/204,或响应 code 为 FAIL。