當您需要透過 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。