规则

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

规则

签名规则完整的请求 Headers 中有 accesstokentimestampsignature 三个参数。

  • accesstoken 可以在“认证获取token”这个接口中获取(详见下一章)

  • timestamp 是当前请求的时间戳,输入当前时间即可

  • signature 是接口签名认证,则需要进行构造。

其中,signature 签名规则如下。

1 构造源串

GET 请求:
得到所有参数,按照字典升序排列,参照(key=value)&拼接起来。
原先的参数请求是 c=1&a=a&b=b,排序之后就变成 a=a&b=b&c=1

POST/PUT/DELETE 请求:
请求的 JSON 直接作为一个完整参数。

在基础参数上按顺序加上 tokentimestamp
a=a&b=b&c=1&token=d0f462f8-73d3-4cec-8d7d-11367c264fa6&timestamp=1574821902392
{a:a,b:b,c:1}&token=d0f462f8-73d3-4cec-8d7d-11367c264fa6&timestamp=1574821902392

2 URL编码

在第一步“构造源串”中得到的字符串,在此步骤中用来 URL 编码。
除了用普通方法来 URL 编码外,还有几个字符需要特殊处理。

Java 方法:
String sources = getSourceParameters(); //第一步“构造源串”
String newSources = URLEncoder.encode(sources, "UTF8")
newSources = newSources.replace("+", "%20");
newSources = newSources.replace("*", "%2A");
newSources = newSources.replace("~","%7E")

3 加密

HMAC256 加密
对在第二步得到的字符串进行 HMAC256 编码,HMAC256 编码的 key 为之前的 accesstoken。

Base64 加密
在 HMAC256 加密之后,再进行一次 Base64 加密。

4 去掉特殊字符

去掉 Base64 加密后之后的\r\n,然后就得到最终的签名。

5 示例

源串:
top=30&robotNo=2d3d833bd2e711e997ae6c0b84d60408

排序:
robotNo=2d3d833bd2e711e997ae6c0b84d60408&top=30

加上 tokentimestamp
robotNo=2d3d833bd2e711e997ae6c0b84d60408&top=30&token=d0f462f8-73d3-4cec-8d7d-11367c2
64fa6&timestamp=15748219023

URL 编码:
robotNo%3D2d3d833bd2e711e997ae6c0b84d60408%26top%3D30%26token%3Dd0f462f8-73d3-4cec
-8d7d-11367c264fa6%26timestamp%3D15748219023

HMAC256 加密:
c63017ee79bd6b8947c353b2e7f7ec9a466e4ae70bc906aa7bc42eca4eacb133

Base64 加密:
YzYzMDE3ZWU3OWJkNmI4OTQ3YzM1M2IyZTdmN2VjOWE0NjZlNGFlNzBiYzkwNmFhN2JjNDJlY2E0ZW
FjYjEzMw==

去掉\r\n
YzYzMDE3ZWU3OWJkNmI4OTQ3YzM1M2IyZTdmN2VjOWE0NjZlNGFlNzBiYzkwNmFhN2JjNDJlY2E0ZW
FjYjEzMw==
这个就是最终的接口签名值,需要在 header 里面传递。

规则

签名规则完整的请求 Headers 中有 accesstoken,timestamp,signature 三个参数。accesstoken 可以在“认证获取token”这个接口中获取...
点击下载文档
上一篇:调度下一篇:角色简要说明
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息