COP平台开放写入OpenAPI

COP平台开放写入OpenAPI,由三方异构系统定时增量推送,完成组织同步模式。

1、概述

COP平台开放写入OpenAPI,由三方异构系统定时增量推送,完成组织同步模式。

2、优缺点分析

a. 优点:

COP集成压力小;

b. 缺点:

三方系统需要有一定的研发能力,完成接口调用和字段映射;

3、集成配置

序号 步骤名称 责任方 使用场景
1 提供组织增量查询接口规范和文档 致远 必须,包含接口定义、签名规则、字段来源等信息
2 API启用 致远 必须,只有启用的API才可以正常进行授权访问
3 新建接入应用 致远 必须,负责分配AppKey和APPSecret、配置访问授权、访问白名单等配置页
4 启用接入应用 致远 必须,未启用的接入应用,访问时会提示接入应用未启用
5 分配APPKey和APPSecret 致远 必须,接口签名核心字段
6 API授权 致远 必须,只有添加权限的额API接口才可以正常访问
7 导出接口文档 致远 非必须,导出所有已经启用的API手册
8 配置访问限流 致远 非必须,根据服务器资源性能,可以配置指定时间段内调用上线
9 配置访问白名单 致远 非必须,开启后,访问白名单之后的API请求将会被拦截
10 调用测试 三方系统 必须,根据平台提供的接口文档和必须字段,使用postmen等工具直接调用,验证网络连通性和信息准确性

4、接口目录

API分类 API名称 接口描述
组织信息同步(基于编码) 批量新建/更新组织 组织(机构+部门)
职务信息同步(基于编码) 批量新建/更新职务 职务
职级信息同步(基于编码) 批量新建/更新职级 职级
岗位信息同步(基于编码) 批量新建/更新岗位 岗位
人员及任职信息同步(基于编码) 批量新建/更新人员及任职 人员&任职

4.1、接口文档在线查看位置

1720490441002

4.2、接口签名

4.2.1、请求头(Header)

参数名称 是否必填 参数说明
app-key true 应用的唯一标识,创建接入应用后生成,可在应用基础信息页面获得。
示例:d43b0b442cf34076a2c4af6bb8928afb
sign-type true 固定值:MD5
sign true 签名,字符串“AppSecret+请求体的JSON字符串+AppSecret”的MD5值(MD5值忽略大小写)
AppSecret,为应用的秘钥,创建接入应用后生成,可在应用基础信息页面获得。
示例:154fa5bc7e294deda68a15559b07c845请求体的JSON字符串,
需要将请求体中的请求参数转换为JSON字符串。
Accept-Language false 语种:用以设置开放平台OpenAPI运行时上下文的语种参数。
枚举项可选值列表:zh-CN(简体中文),
zh-TW(繁体中文),
en(英文),
其他枚举项请参照平台语种列表。

4.2.2、签名示例(sign)

String secret = "154fa5bc7e294deda68a15559b07c845";
String body = "{"name": "张三", "age": 35, "company": {"name": "致远", "address": "北京"}";
String sign = Md5(secret + body + secret); // 结果是 01a8795a7fe6dda23aaec40de3d301b7;

5、接口清单

5.1、批量新建/更新组织

请求地址

【接口请求地址前缀】/organization/unit/batch

请求方式

POST

请求参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
requestId TRUE string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp TRUE int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl FALSE string 异步回调URL。如果此参数非空,
表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data TRUE OrgBatchUnitDto 请求参数数据
units data TRUE array[OrgUnitDataDto] 组织数据
name units TRUE string 组织名称
shortName units FALSE string 组织简称 ,类型为机构时,简称必填,类型为部门时,简称非必填
code units TRUE string 组织编号
type units TRUE enum 组织类型。枚举项可选值列表:
NONE(空),
INSTITUTION(机构),
DEPARTMENT(部门),
OUTSIDE_INSTITUTION(外部(编外)单位),
OUTSIDE_DEPARTMENT(外部(编外)部门),
parentCode units TRUE string 父组织Code,根节点不填
effectiveTime units FALSE string 生效日期
invalidTime units FALSE string 失效日期
sortId units TRUE int32 排序号
isEnable units FALSE boolean 状态
description units FALSE string 备注
metadataList units FALSE array[OrgMetadataValueDataDto] 自定义扩展属性数据
k metadataList FALSE string 扩展字段的名称
v metadataList FALSE string 扩展字段的的值
address units FALSE string 地址
officeNumber units FALSE string 电话
tax units FALSE string 税号
bankAccount units FALSE string 银行账号
bank units FALSE string 开户银行
isLegalEntity units FALSE boolean 是否法人实体
socialCreditCode units FALSE string 统一社会信用代码
legalPersonName units FALSE string 法定代表人姓名
legalCertificateNumber units FALSE string 法定代表人身份证号码
legalPhoneNumber units FALSE string 法定代表人手机号号码
createTime units FALSE date 创建时间,毫秒时间戳
updateTime units FALSE date 更新时间,毫秒时间戳
syncChildMetadataValue data FALSE boolean 是否同步下级组织扩展字段值,默认是false

请求参数示例

{
  "data": {
    "syncChildMetadataValue": "false",
    "units": [
      {
        "bankAccount": "",
        "legalPhoneNumber": "",
        "code": "CoolAcademyImport1001",
        "address": "",
        "effectiveTime": "2023-09-01",
        "officeNumber": "",
        "description": "",
        "tax": "",
        "updateTime": {{timestamp}},
        "invalidTime": "2024-12-31",
        "type": "INSTITUTION",
        "socialCreditCode": "",
        "isEnable": "true",
        "legalPersonName": "",
        "bank": "",
        "legalCertificateNumber": "",
        "parentCode": "group",
        "createTime": {{timestamp}},
        "sortId": 10,
        "name": "集成演示Import1001",
        "isLegalEntity": "false",
        "shortName": "集成演示1001"
      }
    ]
  },
  "requestId":1705902274340,
  "notifyUrl": "",
  "timestamp":1705902274340
}

响应参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
data SingleData 批量处理结果
content data OrgSyncInfoDto 数据对象
type content enum 任务类型。枚举项可选值列表:
BATCH_UNITS(批量处理组织数据),
BATCH_POSTS(批量处理岗位数据),
BATCH_MEMBERS(批量处理人员数据),
BATCH_JOBS(批量处理职务数据),
BATCH_LEVELS(批量处理职级数据),
BATCH_MEMBER_POSTS(批量处理任职数据),
BATCH_UNIT_METADATA(批量处理组织扩展字段数据),
BATCH_MEMBER_METADATA(批量处理人员扩展字段数据),
BATCH_NATURAL_MEMBERS(批量处理外部个人用户数据),
status content enum 状态。枚举项可选值列表:COMPLETE(完成),
startTime content date 开始时间
endTime content date 结束时间
totalNum content int32 总条数
successNum content int32 任务当前执行成功的条数
failNum content int32 任务当前执行失败的条数
details content array[OrgMessageDto] 详情
line details int32 行号
id details int64 id
name details string 名称
code details string 编号
status details enum 状态。枚举项可选值列表:
SUCCESS(成功),
FAILED(失败),
SKIP(跳过),
messageCode details string 错误码
message details string 信息
status int32 状态
code string 错误码
message string 返回信息

响应参数示例

{
    "status": 0,
    "code": "BOOT_0000",
    "message": "SUCCESS",
    "data": {
        "content": {
            "validate": true,
            "type": "BATCH_UNITS",
            "status": "COMPLETE",
            "startTime": 1705913688259,
            "endTime": 1705913688492,
            "totalNum": 1,
            "successNum": 1,
            "failNum": 0,
            "details": [
                {
                    "validate": true,
                    "line": 1,
                    "id": "1659577340788737399",
                    "name": "集成演示Import1001",
                    "code": "CoolAcademyImport1001",
                    "status": "SUCCESS",
                    "messageCode": null,
                    "message": "成功"
                }
            ]
        }
    }
}

5.2、批量新建/更新职务

请求地址

【接口请求地址前缀】/organization/job/batch

请求方式

POST

请求参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
requestId TRUE string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp TRUE int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl False string 异步回调URL。如果此参数非空,
表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data TRUE OrgBatchJobDto 请求参数数据
jobs data TRUE array[OrgJobDataDto] 职务数据
name jobs TRUE string 职务名称
code jobs TRUE string 编号
unitCode jobs TRUE string 所属组织编号
category jobs TRUE enum 职务性质。枚举项可选值列表:
NONE(空),
BENCH_MARK(基准岗),
SELF_BUILT(自用岗),
sortId jobs TRUE int32 排序号
isEnable jobs TRUE boolean 启用状态
description jobs TRUE string 备注

请求参数示例

{
  "data": {
    "jobs": [
      {
        "code": "JobWorkor",
        "sortId": 10,
        "unitCode": "CoolAcademyImport1001",
        "name": "干事",
        "description": "",
        "category": "SELF_BUILT",
        "isEnable": "true"
      }
    ]
  },
  "requestId": 1705913739277,
  "notifyUrl": "",
  "timestamp": 1705913739277
}

响应参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
data SingleData 批量处理结果
content data OrgSyncInfoDto 数据对象
type content enum 任务类型。枚举项可选值列表:
BATCH_UNITS(批量处理组织数据),
BATCH_POSTS(批量处理岗位数据),
BATCH_MEMBERS(批量处理人员数据),
BATCH_JOBS(批量处理职务数据),
BATCH_LEVELS(批量处理职级数据),
BATCH_MEMBER_POSTS(批量处理任职数据),
BATCH_UNIT_METADATA(批量处理组织扩展字段数据),
BATCH_MEMBER_METADATA(批量处理人员扩展字段数据),
BATCH_NATURAL_MEMBERS(批量处理外部个人用户数据),
status content enum 状态。枚举项可选值列表:COMPLETE(完成),
startTime content date 开始时间
endTime content date 结束时间
totalNum content int32 总条数
successNum content int32 任务当前执行成功的条数
failNum content int32 任务当前执行失败的条数
details content array[OrgMessageDto] 详情
line details int32 行号
id details int64 id
name details string 名称
code details string 编号
status details enum 状态。枚举项可选值列表:
SUCCESS(成功),
FAILED(失败),
SKIP(跳过),
messageCode details string 错误码
message details string 信息
status int32 状态
code string 错误码
message string 返回信息

响应参数示例

{
    "status": 0,
    "code": "BOOT_0000",
    "message": "SUCCESS",
    "data": {
        "content": {
            "validate": true,
            "type": "BATCH_JOBS",
            "status": "COMPLETE",
            "startTime": 1705913739212,
            "endTime": 1705913739234,
            "totalNum": 1,
            "successNum": 1,
            "failNum": 0,
            "details": [
                {
                    "validate": true,
                    "line": 1,
                    "id": "1660303025123624311",
                    "name": "{\"zh_CN\":\"干事\"}",
                    "code": "JobWorkor",
                    "status": "SUCCESS",
                    "messageCode": "成功",
                    "message": null
                }
            ]
        }
    }
}

5.3、批量新建/更新职级

请求地址

【接口请求地址前缀】/organization/level/batch

请求方式

POST

请求参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
requestId TRUE string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp TRUE int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data TRUE OrgBatchLevelDto 请求参数数据
levels data TRUE array[OrgLevelDataDto] 职级数据
name levels TRUE string 职级名称(必填)
code levels TRUE string 编号(必填)
levelSort levels TRUE int32 序号
isEnable levels TRUE boolean 启用状态
description levels TRUE string 备注

请求参数示例

{
  "data": {
    "levels": [
      {
        "code": "M22",
        "levelSort": 1,
        "name": "M22",
        "description": "M22,酷学院",
        "isEnable": "true"
      }
    ]
  },
  "requestId":1705913759647,
  "notifyUrl": "",
  "timestamp": 1705913759647
}

响应参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
data SingleData 批量处理结果
content data OrgSyncInfoDto 数据对象
type content enum 任务类型。枚举项可选值列表:
BATCH_UNITS(批量处理组织数据),
BATCH_POSTS(批量处理岗位数据),
BATCH_MEMBERS(批量处理人员数据),
BATCH_JOBS(批量处理职务数据),
BATCH_LEVELS(批量处理职级数据),
BATCH_MEMBER_POSTS(批量处理任职数据),
BATCH_UNIT_METADATA(批量处理组织扩展字段数据),
BATCH_MEMBER_METADATA(批量处理人员扩展字段数据),
BATCH_NATURAL_MEMBERS(批量处理外部个人用户数据),
status content enum 状态。枚举项可选值列表:COMPLETE(完成),
startTime content date 开始时间
endTime content date 结束时间
totalNum content int32 总条数
successNum content int32 任务当前执行成功的条数
failNum content int32 任务当前执行失败的条数
details content array[OrgMessageDto] 详情
line details int32 行号
id details int64 id
name details string 名称
code details string 编号
status details enum 状态。枚举项可选值列表:
SUCCESS(成功),
FAILED(失败),
SKIP(跳过),
messageCode details string 错误码
message details string 信息
status int32 状态
code string 错误码
message string 返回信息

响应参数示例

{
    "status": 0,
    "code": "BOOT_0000",
    "message": "SUCCESS",
    "data": {
        "content": {
            "validate": true,
            "type": "BATCH_JOBS",
            "status": "COMPLETE",
            "startTime": 1705913759662,
            "endTime": 1705913759700,
            "totalNum": 1,
            "successNum": 1,
            "failNum": 0,
            "details": [
                {
                    "validate": true,
                    "line": 1,
                    "id": "1660303424790463863",
                    "name": "{\"zh_CN\":\"M22\"}",
                    "code": "M22",
                    "status": "SUCCESS",
                    "messageCode": "成功",
                    "message": null
                }
            ]
        }
    }
}

5.4、批量新建/更新岗位

请求地址

【接口请求地址前缀】/organization/post/batch

请求方式

POST

请求参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
requestId TRUE string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp TRUE int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data TRUE OrgBatchPostDto 请求参数数据
posts data TRUE array[OrgPostDataDto] 岗位数据
name posts TRUE string 岗位名称
code posts TRUE string 编号
type posts TRUE string 岗位分类的枚举code值
unitCode posts TRUE string 所属组织编号
category posts TRUE enum 岗位性质。枚举项可选值列表:
NONE(空),
BENCH_MARK(基准岗),
SELF_BUILT(自用岗),
sortId posts TRUE int32 排序号
isEnable posts TRUE boolean 启用状态
description posts TRUE string 备注

请求参数示例

{
  "data": {
    "posts": [
      {
        "code": "salesEngineer",
        "sortId": 10,
        "unitCode": "CoolAcademyImport1001",
        "name": "销售工程师",
        "description": "",
        "type": "Management",
        "category": "SELF_BUILT",
        "isEnable": "true"
      }
    ]
  },
  "requestId": 1705913779906,
  "notifyUrl": "",
  "timestamp": 1705913779906
}

响应参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
data SingleData 批量处理结果
content data OrgSyncInfoDto 数据对象
type content enum 任务类型。枚举项可选值列表:
BATCH_UNITS(批量处理组织数据),
BATCH_POSTS(批量处理岗位数据),
BATCH_MEMBERS(批量处理人员数据),
BATCH_JOBS(批量处理职务数据),
BATCH_LEVELS(批量处理职级数据),
BATCH_MEMBER_POSTS(批量处理任职数据),
BATCH_UNIT_METADATA(批量处理组织扩展字段数据),
BATCH_MEMBER_METADATA(批量处理人员扩展字段数据),
BATCH_NATURAL_MEMBERS(批量处理外部个人用户数据),
status content enum 状态。枚举项可选值列表:COMPLETE(完成),
startTime content date 开始时间
endTime content date 结束时间
totalNum content int32 总条数
successNum content int32 任务当前执行成功的条数
failNum content int32 任务当前执行失败的条数
details content array[OrgMessageDto] 详情
line details int32 行号
id details int64 id
name details string 名称
code details string 编号
status details enum 状态。枚举项可选值列表:
SUCCESS(成功),
FAILED(失败),
SKIP(跳过),
messageCode details string 错误码
message details string 信息
status int32 状态
code string 错误码
message string 返回信息

响应参数示例

{
    "status": 0,
    "code": "BOOT_0000",
    "message": "SUCCESS",
    "data": {
        "content": {
            "validate": true,
            "type": "BATCH_POSTS",
            "status": "COMPLETE",
            "startTime": 1705913779967,
            "endTime": 1705913780058,
            "totalNum": 1,
            "successNum": 0,
            "failNum": 1,
            "details": [
                {
                    "validate": true,
                    "line": 1,
                    "id": "1660309690828981623",
                    "name": "{\"zh_CN\":\"销售工程师\"}",
                    "code": "salesEngineer",
                    "status": "FAILED",
                    "messageCode": "ORG_0102",
                    "message": "岗位分类枚举值不存在!"
                }
            ]
        }
    }
}

5.5、批量新建/更新人员及任职

请求地址

【接口请求地址前缀】/organization/member/batch

请求方式

POST

请求参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
requestId TRUE string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp TRUE int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data TRUE OrgBatchMemberDto 请求参数数据
members data TRUE array[OrgMemberDataDto] 人员数据
thirdId members TRUE string 第三方唯一标识
name members TRUE string 姓名
code members TRUE string 编号
username members TRUE string 用户名
gender members TRUE enum 性别。枚举项可选值列表:
NONE(空),
MALE(男),
FEMALE(女),
UN_KNOW(未知),
birthday members TRUE string 出生日期
phoneNumber members TRUE string 手机号码
officeNumber members TRUE string 工作电话
email members TRUE string 邮箱
effectiveTime members TRUE string 生效日期
invalidTime members TRUE string 失效日期
sortId members TRUE int32 排序号
isEnable members TRUE boolean 状态
description members TRUE string 备注
memberPosts members TRUE array[OrgMemberPostDataDto] 人员的任职信息
main memberPosts TRUE boolean 是否主岗
unitCode memberPosts TRUE string 组织编码
postCode memberPosts TRUE string 岗位编码(内部人员必填)
levelCode memberPosts TRUE string 职级编码
jobCode memberPosts TRUE string 职务编码
effectiveTime memberPosts TRUE string 生效日期
invalidTime memberPosts TRUE string 失效日期
sortId memberPosts TRUE int32 排序号
topSortId memberPosts TRUE int32 优先置顶排序
isEnable memberPosts TRUE boolean 状态
memberType memberPosts TRUE enum 人员类型。枚举项可选值列表:
NONE(空),
MEMBER(内部人员),
OUTSIDE_MEMBER(外部单位用户),
NATURAL_MEMBER(外部个人用户),
metadataList members TRUE array[OrgMetadataValueDataDto] 自定义扩展属性数据
k metadataList TRUE string 扩展字段的名称
v metadataList TRUE string 扩展字段的的值
certificateType members TRUE string 证件类型
certificateNumber members TRUE string 证件号码
entryDate members TRUE string 入职日期
bankAccount members TRUE string 银行账号
bank members TRUE string 开户银行
bankOutlets members TRUE string 开户网点
image members TRUE string 头像路径
memberType members TRUE enum 人员类型。枚举项可选值列表:
NONE(空),
MEMBER(内部人员),
OUTSIDE_MEMBER(外部单位用户),
NATURAL_MEMBER(外部个人用户),
createTime members TRUE date 创建时间,毫秒时间戳
updateTime members TRUE date 更新时间,毫秒时间戳

请求参数示例

{
  "data": [
      {
        "birthday": "",
        "code": "KXY1081001",
        "gender": "MALE",
        "bankOutlets": "",
        "effectiveTime": "2023-09-01",
        "officeNumber": "",
        "description": "",
        "invalidTime": "2024-12-31",
        "isEnable": "true",
        "bank": "",
        "sortId": 10,
        "email": "",
        "bankAccount": "",
        "image": "",
        "thirdId": "KXY1081001",
        "entryDate": "2023-09-01",
        "updateTime": 1705913802791,
        "memberPosts": [
          {
            "levelCode": "M22",
            "effectiveTime": "2023-09-01",
            "sortId": 10,
            "unitCode": "InformationCenter",
            "jobCode": "JobWorkor",
            "main": "true",
            "postCode": "salesEngineer",
            "invalidTime": "2024-12-31",
            "memberType": "MEMBER",
            "isEnable": "true"
          }
        ],
        "phoneNumber": "18701021001",
        "certificateNumber": "",
        "createTime": 1705913802791,
        "name": "集成演示-张三",
        "memberType": "MEMBER",
        "username": "18701021001",
        "certificateType": "idCard"
      }
    ]
  ,
  "requestId": 1705913802791,
  "notifyUrl": "",
  "timestamp": 1705913802791
}

响应参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
data SingleData 批量处理结果
content data OrgSyncInfoDto 数据对象
type content enum 任务类型。枚举项可选值列表:
BATCH_UNITS(批量处理组织数据),
BATCH_POSTS(批量处理岗位数据),
BATCH_MEMBERS(批量处理人员数据),
BATCH_JOBS(批量处理职务数据),
BATCH_LEVELS(批量处理职级数据),
BATCH_MEMBER_POSTS(批量处理任职数据),
BATCH_UNIT_METADATA(批量处理组织扩展字段数据),
BATCH_MEMBER_METADATA(批量处理人员扩展字段数据),
BATCH_NATURAL_MEMBERS(批量处理外部个人用户数据),
status content enum 状态。枚举项可选值列表:COMPLETE(完成),
startTime content date 开始时间
endTime content date 结束时间
totalNum content int32 总条数
successNum content int32 任务当前执行成功的条数
failNum content int32 任务当前执行失败的条数
details content array[OrgMessageDto] 详情
line details int32 行号
id details int64 id
name details string 名称
code details string 编号
status details enum 状态。枚举项可选值列表:
SUCCESS(成功),
FAILED(失败),
SKIP(跳过),
messageCode details string 错误码
message details string 信息
status int32 状态
code string 错误码
message string 返回信息

响应参数示例

{
  "code": "200",
  "data": {
    "content": {
      "failNum": 1,
      "totalNum": 100,
      "successNum": 99,
      "startTime": "",
      "details": [
        {
          "code": "",
          "line": 10,
          "name": "",
          "messageCode": "",
          "id": "10828711522402302",
          "message": "SUCCESS",
          "status": ""
        }
      ],
      "endTime": "",
      "type": "BATCH_MEMBERS",
      "status": "READY"
    }
  },
  "message": "成功",
  "status": "FRONT"
}

5、注意事项

接口授权和分配AppKey、AppSecret请参考【数据开放】操作步骤

最后修改 March 4, 2025: 重新提交 (b407c0a)