Skip to content

认证机制 ​

认证方式 ​

所有对外 API 请求必须在 URL 中携带以下认证参数:

参数名类型必填说明
appKeyString是API 密钥
timestampLong是当前时间戳(毫秒)
signatureString是请求签名

签名算法 ​

步骤 1:构建待签名字符串 ​

待签名字符串 = appKey + ":" + timestamp + ":" + appSecret

步骤 2:计算 MD5 签名 ​

signature = MD5(待签名字符串).toUpperCase()

示例(Java) ​

java
String appKey = "your_app_key";
String appSecret = "your_app_secret";
Long timestamp = System.currentTimeMillis();
String signStr = appKey + ":" + timestamp + ":" + appSecret;
String signature = DigestUtils.md5Hex(signStr).toUpperCase();

时间戳验证 ​

请求时间戳与服务器时间差不能超过 30 分钟。

加密示例 ​

已知参数:

  • appKey:40593672
  • appSecret:DET41A2VYN7FPI8BM6OU
  • timestamp:1764429611747

计算方式(顺序为 appKey:timestamp:appSecret):

MD5(40593672:1764429611747:DET41A2VYN7FPI8BM6OU)

最终得到:

signature = 3FB1E80DDE5962CDD9A2E1AC77B4291B

认证示例 ​

URL 示例:

GET /openapi/query/regions?appKey=xxx&timestamp=1732694400000&signature=5D41402ABC4B2A76B9719D911017C592

完整示例(带业务参数):

GET /openapi/query/device/realtime/123?appKey=xxx&timestamp=1732694400000&signature=5D41402ABC4B2A76B9719D911017C592&deviceId=123

注意事项

  • 所有请求方法(GET/POST/PUT/DELETE)都使用 URL 参数传递认证信息
  • 认证参数(appKey、timestamp、signature)必须放在 URL 中
  • GET 请求的参数除了认证加密的参数,其他参数在 URL 进行拼接
  • POST/PUT/DELETE 方式,URL 认证参数不变,请求参数放在 Body 当中