当您在调用 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 中的 ~ 字符,这可能会破坏签名的正确性。