當你需要通過 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。