當您在呼叫 Open API 時遇到 401 Unauthorized 錯誤,這通常是因為產生的 HMAC 簽名不正確。
由於此類問題通常與賣家本機的程式碼邏輯有關,且平台不會記錄加密失敗的日誌,因此客服人員很難在後台進行復現或排查。為了快速解決,建議您優先按照以下 3 個步驟進行排查:
1)核對金鑰:登入 Wing 後台,檢查 Access Key 和 Secret Key 是否正確無誤。
2)檢查伺服器時間:產生 HMAC 簽名時會使用伺服器時間。如果時間不準確,或沒有在每次發送請求時重新產生簽名,就會導致驗證失敗。
3)檢查程式碼邏輯:如果金鑰和時間都沒問題,很可能是參數加密或 URL 拼接方式有誤。請注意區分 GET、POST、DELETE 等不同請求方式的加密規則。
HMAC 簽名產生方式:查看文檔
Java 程式碼範例:查看範例
Node.js 程式碼範例:查看範例
PHP 程式碼範例:查看範例
Python 程式碼範例:查看範例
C# 程式碼範例:查看範例
ASP 程式碼範例:查看範例
特別注意(.NET 使用者)
如果您使用的是 .NET 開發,請檢查預設的 WebRequest / WebClient 是否自動解碼了 URL 中的 ~ 字元,這可能會破壞簽名的正確性。