菜单

接口鉴权说明

1. 接口鉴权请求流程说明

  • 请求端根据 API 请求内容(包括 HTTP Header 和 Body)生成签名字符串。
  • 请求端使用MD5对第一步生成的签名字符串进行签名,形成该 API 请求的数字签名。
  • 请求端把 API 请求内容和数字签名一同发送给服务端。
  • 服务端在接到请求后会重复如上的第一、二步工作,并在服务端计算出该请求期望的数字签名。
  • 服务端用期望的数字签名和请求端发送过来的数字签名做比对,如果完全一致则认为该请求通过安全验证,否则直接拒绝该请求。

2. Header公共请求参数

参数说明样例
X-Up-Key即开发者的publisher_key,开通成功后可在开发者后台的账号管理页面获取i8XNjC4b8KVok4uw5RftR38Wgp2BFwql
X-Up-TimestampAPI 调用者传递时间戳,值为当前时间的毫秒数,也就是从1970年1月1日起至今的时间转换为毫秒,时间戳有效时间为15分钟。1613818152000
X-Up-Signature数字签名,即API 请求内容(包括 HTTP Header 和 Body)的MD5加密后签名字符串,必须大写58C344327312C308B47C1A6278483C4C

3. 数字签名(X-Up-Signature)内容构成

字段说明样例
Content-MD5HTTP 请求中 Body 部分的 MD5 值(必须为大写字符串),
注意:如果是GET请求没有请求体Body,那么就是空字符串的MD5值
875264590688CA6171F6228AF5BBB3D2
Content-TypeHTTP 请求中 Body 部分的类型application/json
Headers除X-Up-Signature的其它header公共参数(即X-Up-Timestamp和X-Up-Key内容),每个键值对之间需换行符分割,每个键值对按Key字典序升序排列X-Up-Key:aac6880633f102bce2174ec9d99322f55e69a8a2 + '\n' + X-Up-Timestamp: 1562813567000
HTTPMethodHTTP 请求的方法名称,全部大写PUT、GET、POST 等
Resource由 HTTP 请求资源构造的字符串(如果有querystring不要加上),即请求URL的相对路径/v2/fullreport

4. 数字签名(X-Up-Signature)生成方式

参与签名计算的字符串由3中的内容组成,生成方式步骤如下:

     (1) 构造MD5签名字符串,每部分内容需换行符分隔:
     SignString = HTTPMethod + '\n'
                        \+ Content-MD5 + '\n' 
                        \+ Content-Type + '\n'  
                        \+ Headers + '\n'
                        \+ Resource 
                        
     (2) 对(1)中字符串进行MD5加密:                   
     MD5Result = MD5(SignString)

     (3) 对(2)中MD5结果字符串全部转大写得到最终签名:
     X-Up-Signature = ToUpper(MD5Result)

SignString的Resource:

     URL的相对路径,例如:/v2/fullreport   

SignString的Headers:

    由除X-Up-Signature的其它header公共参数组成,即X-Up-Timestamp和X-Up-Key内容,
    每个键值对之间需换行符分割,每个键值对按Key字典序升序排列,
    Value1,Value2 分别为对应请求头X-Up-Key和X-Up-Timestamp的实际值

    Headers = X-Up-Key + ":" + Value1 + '\n' + X-Up-Timestamp + ":" + Value2  


5. 不同语言签名实例:

参考示例代码中签名实现逻辑:查看示例代码

最近修改: 2025-05-30Powered by