钉钉审批接口.md 11.9 KB

[toc]

钉钉审批对接API

则一提供了不同规范的API,调用服务端API前,需了解开发前须知及调用流程。本文提供了调用则一服务端API示例,供开发者参考。

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">白名单

则一服务端API接口访问有IP白名单限制,需要接口调用方提供调用API的服务器IP地址。

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">数据加签

采用md5(32位小写)算法生成签名 appKey(则一提供) + appSecret(则一提供) + timestamp(当前时间戳毫秒) + nonce(6位随机码大小写字母数子组合) + data(请求数据)

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">数据加密

数据加密采用AES算法 加密模式: CBC 填充方式:PKCS5Padding 偏移量:iv(则一提供) 加密内容:appKey(则一提供) + timestamp(当前时间戳毫秒) + nonce(6位随机码大小写字母数子组合) + data(加密数据) 密钥: appSecret(则一提供) 输出:base64 字符集:utf-8 注:无敏感数据则无需加密

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">获取访问凭证

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">概述

调用则一服务API时,都需要先获取对应权限类型的访问凭证accessToken。访问凭证(accessToken)是由则一权限系统颁发的,用来校验调用者的身份信息,确保调用者具有要执行的操作的权限。 说明: 在使用accessToken时,请注意:

  • accessToken的有效期默认为30天,有效期内重复获取会返回相同结果,过期后获取会返回新的accessToken。
  • 开发者需要缓存accessToken,用于后续接口的调用。不能频繁调用获取accessToken接口,否则会受到频率限制拦截。
  • 当调用业务API时,如果返回状态码为401,则说明accessToken不正确或已过期,这时需要重新获取accessToken后再调用对应的API。

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">接口信息

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">请求方式:

post

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">请求地址:

Body参数

名称 类型 必填 示例值 描述
username String zhangsan 用户名,则一提供
password String password123 密码,则一提供

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">返回参数

名称 类型 示例值 描述
success boolean true 成功标识: true 成功,false 失败
businessException boolean false 业务异常标识: true 业务异常,false 正常
errorCode String 200 错误码: 200 业务异常,500 系统异常, 空表示无错误
message String 订单号不能为空 错误信息,无错误则返回空
result ZYTokenDto accessToken结果数据
    accessToken String 000626f15b4b41bba6fe56216a5d2f73 accessToken
    expiresIn Integer 2060 有效期限单位秒,accessToken在2060秒后过期
    tokenType String bearer token类型

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">请求示例

Http方式
POST /auth-service-api/login/password HTTP/1.1
Host:test.shjiuze.cn
Content-Type:application/json

{
  "username" : "zeyi",
  "password" : "test1111"
}
Java-sdk方式
下载SDK
public class Sample {
    public static void main(String[] args_) {
        String appKey = "appkey";
        String appSecret = "appSecret";
        ZYClient zyClient = new ZYClient(appKey, appSecret);
        ZYTokenRequestDto zyTokenRequest = new ZYTokenRequestDto();
        zyTokenRequest.setUsername("zeyi");
        zyTokenRequest.setPassword("test1111");
        String body = gson.toJson(zyTokenRequest);
        HttpResponseData httpResponseData = zyClient.doPost(Constants.TEST_HOST + Constants.TOKEN_PATH, body);
        if(httpResponseData == null) {
            throw new TokenException("则一Token请求失败,返回为空!");
        }
        ZYResponse<ZYTokenDto> zyResponse = gson.fromJson(httpResponseData.getBody(), new      TypeToken<ZYResponse<ZYTokenDto>>(){}.getType());
        if(!Boolean.TRUE.equals(zyResponse.isSuccess())) {    
            throw new TokenException("则一Token请求返回失败!" + zyResponse.getMessage());
        }
        if(zyResponse.getResult() == null) {    
            throw new TokenException("则一Token请求返回失败,返回结果为空!" + zyResponse.getMessage());
        }
        if(StringUtils.isBlank(zyResponse.getResult().getAccessToken())) {    
            throw new TokenException("则一Token请求返回数据异常,AccessToken为空!" + zyResponse.getMessage());
        }
        // 结果 zyResponse.getResult();
    }
}

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">返回示例

{
    "success": true,
    "businessException": false,
    "errorCode": null,
    "message": null,
    "result": {
        "accessToken": "64d7f367-609b-4f7d-a84d-a3d2a0b5ad85",
        "expiresIn": 602105,
        "tokenType": "bearer"
    }
}

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">发起审批

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">简要描述

发起钉钉审批接口,接收金润发起钉钉审批请求数据

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">调用方式

金润---->则一

请求URL

· 测试环境:https://test.shjiuze.cn/tms-service-api/dingtalkAudit/send

· 生产环境:https://gw.shjiuze.cn/tms-service-api/dingtalkAudit/send

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">请求方式

POST

Headers参数

名称 类型 必填 示例值 描述
Authorization String 是     Bearer a2c5680001 调用服务端API的应用凭证accessToken,通过调用获取访问凭证接口获取。
appKey String 0867ef5f23ef446483749e19e1692b40 则一提供
timestamp String 1643251533306 当前时间戳毫秒值
nonce String gdst9t 6位小写字母数字组合随机串
sign String fa3ed338d6dfe18e7273c8692234ee70 签名:appKey(则一提供) + appSecret(则一提供) + timestamp + nonce(6位随机码) + data(body参数)通过md5(32位小写)算法生成

Body参数

参数名 必传 类型 说明
code string 业务编号(确定数据唯一性,同一编号最多只能有1个审核通过或审核中的审批)
auditType string 审批类型(则一提供)
originatorUsername string 发起人工号(则一员工工号)
orgCode string 业务所属组织
auditFormList list 审批表单字段
    type string 类型(1.text 文本格式 2.file 文件格式(文件url))
    name string 表单字段名称(对应钉钉审批表单字段名称)
    value string 表单字段值
    extendValue string 表单字段附加值
conditionParamList list 条件参数字段(可根据参数判断走哪些流程节点)
    name string 属性名
    value string 属性值

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">审批回调

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">简要描述

审批结果回调接口,审批同意、拒绝、撤销、删除时接收审批结果数据

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">调用方式

则一---->金润

请求URL

· 测试环境:https://domain/path/dingtalkAudit/callback

· 生产环境:https://domain/path/dingtalkAudit/callback

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">请求方式

POST

Headers参数

名称 类型 必填 示例值 描述
Authorization String 是     Bearer a2c5680001 调用服务端API的应用凭证accessToken,通过调用获取访问凭证接口获取。
appKey String 0867ef5f23ef446483749e19e1692b40 金润提供
timestamp String 1643251533306 当前时间戳毫秒值
nonce String gdst9t 6位小写字母数字组合随机串
sign String fa3ed338d6dfe18e7273c8692234ee70 签名:appKey(金润提供) + appSecret(金润提供) + timestamp + nonce(6位随机码) + data(body参数)通过md5(32位小写)算法生成

Body参数

参数名 必传 类型 说明
code string 业务编号
auditType string 审批类型
businessId string 钉钉审批ID
type string 审批正常结束(同意或拒绝)的type为finish,审批终止的type为terminate
result string 正常结束时result为agree,终止时result为refuse
auditUser string 最终审核人
remark string 审批意见

48e6c830c8e47fa2bb6ccacb4b92760e97725545/jingrun/dingtalk/钉钉审批接口.md#">附录

  1. 下载则一Java-sdk ##### 下载SDK

2025-10-11 更新日志

  1. 接口初始化