电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

开发者指南--①使用APP认证调用API

来源:金蝶云社区作者:金蝶2024-09-238

开发者指南--①使用APP认证调用API

1 认证前准备

  • 调用区域的网关域名

  • 请求URL(分组path与API path)

  • 请求方法

  • 提供有效的AppKey、AppSecret才能生成认证签名


在“应用管理”中添加一个APP,并将APP绑定/订阅API,就可以使用APP对应的AppKey和AppSecert访问该API。可在应用详细信息中查看AppKey和AppSecret。



2 APP认证工作原理

  • 构造规范请求

  • 使用规范请求和其他信息创建待签字符串

  • 使用AppKey与AppSecret和待签字符串生成签名

  • 将签名与其他信息作为请求消息添加到HTTP请求头中

  • 网关收到请求后执行相应操作计算签名

  • 将签名进行比较如果匹配则处理请求,否则将拒绝请求


2.1 构造规范请求

① HTTP请求规范代码:

CanonicalRequest =
    HTTPRequestMethod + '\n' +
    CanonicalURI + '\n' +
    CanonicalQueryString + '\n' +
    CanonicalHeaders + '\n' +
    SignedHeaders + '\n' +
    HexEncode(Hash(RequestPayload))


② 假设原始请求为:

GET https://www.kcgw.com/service/api?a=1  HTTP/1.1
X-Api-TimeStamp: 123456
X-Api-AppKey: 1615343734


构造HTTP请求方法HTTPRequestMethod),以换行符结束。

HTTP请求方法,如GET、PUT、POST等。请求方法示例:

GET


④ 规范URI参数: CanonicalURI 根据RFC 3986标准化URI路径,移除冗余和相对路径部分,路径中每个部分必须为URI编码。如果URI路径不以“/”结尾,则在尾部添加“/”。

则示例的规范URI参数为:

/service/api/


⑤ 规范查询字符串: CanonicalQueryString 根据以下规则对每个参数名和值进行URI编码,如果没有请求参数则为空字符串,即规范后的请求为空行。

则示例的规范查询字符串为 a=1

  • 请勿对RFC 3986定义的任何非预留字符进行URI编码,这些字符包括:A-Z、a-z、0-9、-、_、.和~。

  • 使用%XY对所有非预留字符进行百分比编码,其中X和Y为十六进制字符(0-9和A-F)。例如,空格字符必须编码为%20,扩展UTF-8字符必须采用“%XY%ZA%BC”格式。

  • 对于每个参数,追加“URI编码的参数名称=URI编码的参数值”。如果没有参数值,则以空字符串代替,但不能省略“=”。

  • 按照字符代码以升序顺序对参数名进行排序。例如,以大写字母F开头的参数名排在以小写字母b开头的参数名之前。

  • 以排序后的第一个参数名开始,构造规范查询字符串。


举例

a=1


⑥ 添加规范消息头: CanonicalHeaders


格式

CanonicalHeaders由多个请求消息头共同组成,CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ...,其中每个请求消息头(CanonicalHeadersEntry )的格式为Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\n'


则示例的规范消息头为:

  • Lowercase表示将所有字符转换为小写字母的函数。

  • Trimall表示删除值前后的多余空格的函数。

  • 最后一个请求消息头也会携带一个换行符。叠加规范中CanonicalHeaders自身携带的换行符,因此会出现一个空行。

GET\n
/service/api/\n
a=1\n
content-type:application/json\n
x-api-timestamp:123456\n\n


添加用于签名的消息头声明SignedHeaders),以换行符结束。

释义

用于签名的请求消息头列表。通过添加此消息头,向API网关告知请求中哪些消息头是签名过程的一部分,以及在验

开发者指南--①使用APP认证调用API

1 认证前准备调用区域的网关域名请求URL(分组path与API path)请求方法提供有效的AppKey、AppSecret才能生成认证签名在“应用管理”中添...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信