Skip to content

认证机制

认证方式

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

参数名类型必填说明
appKeyStringAPI 密钥
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();

时间戳验证

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

加密示例

已知参数:

  • appKey40593672
  • appSecretDET41A2VYN7FPI8BM6OU
  • timestamp1764429611747

计算方式:

MD5(40593672:DET41A2VYN7FPI8BM6OU:1764429611747)

最终得到:

signature = BFD75BE6CB742BC7F10ECBBA06167DDF

认证示例

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 当中