1、若有H5页面,登录方法参考:为谷云API调用方法

2、若没有H5页面接收金蝶登录页面的code,可通过应用ID(clientID)来获取access_token
操作流程参考金蝶API文档

操作步骤:
(1)登录:https://open.jdy.com/#/home 获取clientID及client_secret及第三方实例ID


(2)主动授权接口拿到app_key和appsecret:主动获取授权信息,通过授权信息可以获取调用业务接口所需要的token。
https://api.kingdee.com/jdyconnector/app_management/push_app_authorize?outerInstanceId=第三方实例 ID
请求方式:POST
Headers参数={
X-Api-ClientID:clientID,
X-Api-clientSecret:应用秘钥
}
请求示例
curl --location --request POST 'https://api.kingdee.com/jdyconnector/app_management/push_app_authorize?outerInstanceId=382339649957400576' \ --header 'X-Api-ClientID: 306118' \ --header 'X-Api-clientSecret: a406f4d28c37fa1b32d9f856a9e42d92' \ --header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \ --header 'Accept: */*' \ --header 'Host: api.kingdee.com' \ --header 'Connection: keep-alive'
(3)生成app_signature
通过appSecret对app_key进行HamcSHA256加密
以16进制输出,再进行Base64加密。例:app_key=abc,appSecret=abc123,则app_signature=ZDljMTI3NGIyNTE1MTRkYzlkNjc1MDNhYjUzMzgzNWMyY2M4YTdjMzdmNmM3YTVlNDkxMTkzNjdiOTFjNzUyZQ==
(4)X-Api-Signature加密
GET
%2Fjdyconnector%2Fapp_management%2Fkingdee_auth_token
app_key=bVZgAZOv1&app_signature=MzZlYTk0ODk4MWZlNjdiODNmNWU4YzViNzYxNGM5MTFlOGJkN2NjMzk0MTJkZGNhZGM0NzZhN2YxZDJmOTlkZA%253D%253D
x-api-nonce:4427456950
x-api-timestamp:1670305063559
注:app_signature需要编码两次,时间戳后面需要加换行符

以clientSecret作为密钥,使用HMAC-SHA256算法对签名字符串进行加密以16进制格式输出
然后进行Base64编码,获得X-Api-Signature
在线HMAC计算链接:https://www.metools.info/code/c25.html

在线编码链接:https://www.jyshare.com/front-end/693/

完整请求:
curl --location --request GET 'https://api.kingdee.com/jdyconnector/app_management/kingdee_auth_token?app_key=bVZgAZOv1&app_signature=MzZlYTk0ODk4MWZlNjdiODNmNWU4YzViNzYxNGM5MTFlOGJkN2NjMzk0MTJkZGNhZGM0NzZhN2YxZDJmOTlkZA%3D%3D' \
--header 'Content-type: application/json;charset=utf-8' \
--header 'X-Api-ClientID: 200421' \
--header 'X-Api-Auth-Version: 2.0' \
--header 'X-Api-TimeStamp: 1670305063559' \
--header 'X-Api-Nonce: 4427456950' \
--header 'X-Api-SignHeaders: X-Api-TimeStamp,X-Api-Nonce' \
--header 'X-Api-Signature: OTFiZTliNDFiMjNkYTI3YzVhNzg4MDI4ZGU3MWY1ZTA5ZTk1NjVlNGM1YTI1ZjIxY2Y5YTA3ZGY2OGI1MGQ1MQ==' \
(5)换取app-token
基本信息
- 用途说明:获取账套级别的token,为确保正常使用,请务必在实时接收授权时调用该接口。
- 请求方式:GET
- 请求链接:https://api.kingdee.com/jdyconnector/app_management/kingdee_auth_token
请求参数
headers参数
| 参数名称 | 参数示例 | 是否必填 | 参数说明 |
|---|---|---|---|
| Content-Type | application/json | true | 固定传:application/json |
| X-Api-ClientID | 205022 | true | clientId,创建指引 |
| X-Api-Auth-Version | 2.0 | true | 固定传:2.0 |
| X-Api-TimeStamp | 1655775240000 | true | 当前时间毫秒时间戳,有效期为5min |
| X-Api-SignHeaders | X-Api-TimeStamp,X-Api-Nonce | true | 固定传:X-Api-TimeStamp,X-Api-Nonce |
| X-Api-Nonce | 1655775240000 | true | 随机正整数 |
| X-Api-Signature | xxx | true | 参考加密规则 |
params参数
| 参数名称 | 类型 | 是否必选 | 最大长度 | 说明 |
|---|---|---|---|---|
| uid | String | false | 10 |
云账户用户id,不传时默认返回授权创建app_key的账套管理员的token, 传了uid后即返回对应指定金蝶云账户用户的token(需要与管理员同认证企业),用户信息列表接口 |
| app_key | String | true | 8 | 获取appKey |
| app_signature | String | true | 88 | 通过appSecret对app_key进行HamcSHA256加密 以16进制输出,再进行Base64加密。例:app_key=abc,appSecret=abc123,则app_signature=ZDljMTI3NGIyNTE1MTRkYzlkNjc1MDNhYjUzMzgzNWMyY2M4YTdjMzdmNmM3YTVlNDkxMTkzNjdiOTFjNzUyZQ== |
请求示例
curl --location --request GET 'https://api.kingdee.com/jdyconnector/app_management/kingdee_auth_token?app_key=abc&app_signature=ZDljMTI3NGIyNTE1MTRkYzlkNjc1MDNhYjUzMzgzNWMyY2M4YTdjMzdmNmM3YTVlNDkxMTkzNjdiOTFjNzUyZQ%3D%3D
--header 'X-Api-ClientID: xxx
--header 'X-Api-Auth-Version: 2.0
--header 'X-Api-TimeStamp: 1655775240000'
--header 'X-Api-Nonce: 1655775240000'
--header 'X-Api-SignHeaders: X-Api-TimeStamp,X-Api-Nonce'
--header 'X-Api-Signature: xxx'
响应示例
{
"errcode": 0,
"description": "成功",
"data": {
"uid": 700xxx,
"app-token": "1643270xxxx"
"access_token":"23kdsfjfxxxx"
}
}
(6)获取账套信息
接口:https://api.kingdee.com/jdyaccount/sys/accountGroup?access_token=
请求方式:POST
获取接口返回的serviceAddr、groupName、accountId
请求示例:
curl --location --request POST 'https://api.kingdee.com/jdyaccount/sys/accountGroup?access_token=1741968120afecf0c44af2bfeb5cfb0c' \ --header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \ --header 'Accept: */*' \ --header 'Host: api.kingdee.com' \ --header 'Connection: keep-alive'
(7)获取当前用户信息
接口:https://api.kingdee.com/weigusoft/basedata/get_current_user_info?access_token=
请求方式:POST
参数header= { 'X-GW-Router-Addr': serviceAddr,
'Content-Type': 'application/json;charset=utf-8',
access_token,
groupName,
accountId
};