跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

签名规则

API签名串组装规则

在友盟+开放平台,url请求的多个参数都要参与签名(与文件上传有关的api中,文件字节流那个参数不参与签名),下面以两个参数为例,假设请求的url格式如下所示:https://gateway.open.umeng.com/openapi/param2/1/system/currentTime/1000000?b=2&a=1 (apiKey=1000000,假设 apiSecurity=test123)

参照签名算法说明,签名串s组装规则为:

  1. 构造签名因子:urlPath。url 中的一部分,我们称之为urlPath,从协议(param2)开始截取,到“?”为止,urlPath=param2/1/system/currentTime/1000000
  2. 构造签名因子:拼装的参数。参数 b=2&a=1,首先将参数的key和value拼在一起,得到b2和a1,然后按照首字母排序,得到a1和b2,最后按顺序拼在一起得到a1b2
  3. 合并两个签名因子。把前两步的字符串拼起来,得到s = param2/1/system/currentTime/1000000a1b2
  4. 对合并后的签名因子执行hmac_sha1算法。 Signature=uppercase (hex (hmac_sha1 (s, apiSecurity)) 得到签名33E54F4F7B989E3E0E912D3FBD2F1A03CA7CCE88

其中:

  • apiSecurity为签名密钥,与urlPath中的apiKey(1000000)对应,在开通OpenAPI访问权限时获取
  • hmac_sha1为通用的hmac_sha1算法,各编程语言一般都对应类库
  • hex为转为十六进制
  • uppercase为转为大写字符

说明:API签名算法主要是使用urlPath和请求参数作为签名因子进行签名,主要针对OpenAPI的调用