开放平台

版本:v1.0.0

用于接口数据上传及员工合同信息获取

开放平台使用说明

开放平台接口为https://ectcs.hrsecn.com/openAPI

  1. 在接入开放平台前,请联系平台管理员获取企业公钥

  2. 接口说明

返回数据中如果数据为空,则返回null

所有参数请放作为一个JSONObject中作为Request Body请求

数据data需要以utf-8格式编码为base64字符串,再使用public key进行分段加密

加密数据java示例:

    /**
     * RSA最大加密明文大小
     */
  private static final int MAX_ENCRYPT_BLOCK = 117;

    /**
     * 使用公钥加密
     *
     * @param str 数据
     * @param publicKey 公钥字符串
     * @return
     * @throws Exception
     */
  public static String encrypt(String str, String publicKey) throws Exception {
         // base64编码的公钥
         byte[] decoded =  (new BASE64Decoder()).decodeBuffer(publicKey);
         RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decoded));
         // RSA加密
         Cipher cipher = Cipher.getInstance("RSA");
         cipher.init(Cipher.ENCRYPT_MODE, pubKey);
         byte []sourceCode=str.getBytes("UTF-8");
         int inputLen = sourceCode.length;
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         int offSet = 0;
         byte[] cache;
         int i = 0;
         // 对数据分段加密
         while (inputLen - offSet > 0) {
             if (inputLen - offSet > MAX_ENCRYPT_BLOCK) {
                 cache = cipher.doFinal(sourceCode, offSet, MAX_ENCRYPT_BLOCK);
             } else {
                 cache = cipher.doFinal(sourceCode, offSet, inputLen - offSet);
             }
             out.write(cache, 0, cache.length);
             i++;
             offSet = i * MAX_ENCRYPT_BLOCK;
         }
         byte[] encryptedData = out.toByteArray();
         out.close();
         String outStr = Base64.encode(encryptedData);
         return outStr;
     }

导入部门 action=importDepart

在企业新建时会产生pid为-1,名称为企业名称的部门,导入人员时若不指定部门,则默认导入该部门

删除部门时该部门下所有员工默认归属到企业默认部门下

  • 入参
字段 说明 是否可为空
pub_key 企业公钥 N
data 加密后的数据 N
action 当前值为importDepart N

其中dataJSONArray结构

字段 属性类型及限制 说明 是否可为空
depart_name String(50) 部门名称 N
depart_address String(80) 部门地址 Y
comments String(50) 说明 Y
contact_information String(50) 联系方式 Y
children JSONArray 子部门(属性值同上) Y
  • 返回值
返回字段 说明
code
data
success 是否成功,true:成功,false:失败
message 返回信息(发生错误时的错误信息)
status 返回状态,默认:default或 错误代码
  • 请求示例

HTTP请求示例

 GET /openAPI HTTP/1.1
 Host: https://ectcs.hrsecn.com
 Content-Type: application/json
 {
     "action": "importDepart",
     "pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
     "data": "e3HHTeJH1OiOv+************x3fvv/uYPxvO9z4eXEXGKr***********PIIvoCrefwF2LXoZyQRLlB/ONOsrkTV********1XCBTpk8B0LejgBO7R6dPZUglcgRNRAs6FueNq*********OVFcz4qfCkMehgxh79U3BwM1dIXUpyQKQkWc+uGkFeFabLeXMa878OgplwvQnALfLgrfkyVXdbXKSXh******8cwpXQG0pRkEVcXzCHcPTG86jIVCzY18Rky8Pjw=="
}

其中 data 原始数据为
data:[{
    depart_name: "测试部门1",
    depart_address: "**楼",
    comments: "**楼",
    contact_information: "101",
    children: [{
        depart_name: "测试部门1_1",
        depart_address: "**楼",
        comments: "**楼",
        contact_information: "1011"
    }]
}]

正常返回值为

{
    "code": null,
    "data": "成功2条,插入1条,更新1条,失败0条",//失败1条(原因为:)
    "success": true,
    "message": "successful!",
    "status": "default"
}

删除部门 action=removeDepart

删除部门时该部门下所有员工默认归属到企业默认部门下

  • 入参
字段 说明 是否可为空
pub_key 企业公钥 N
data 加密后的数据 N
action 当前值为removeDepart N

其中 dataJSONArray结构

字段 属性类型及限制 说明 是否可为空
depart_name String(50) 部门名称 N
  • 返回值
返回字段 说明
code
data
success 是否成功,true:成功,false:失败
message 返回信息(发生错误时的错误信息)
status 返回状态,默认:default或 错误代码
  • 请求示例

HTTP请求示例

 GET /openAPI HTTP/1.1
 Host: https://ectcs.hrsecn.com
 Content-Type: application/json
 {
     "action": "removeDepart",
     "pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
     "data": "a8LluZaiagwlgbIDRH+************x3fvv/uYPxvO9z4eXEXGKr***********PIIvoCrefwF2LXoZyQRLlB/ONOsrkTV********1XCBTpk8B0LejgBO7R6dPZUglcgRNRAs6FueNq*********OVFcz4qfCkMehgxh79U3BwM1dIXUpyQKQkWc+uGkFeFabLeXMa878OgplwvQnALfLgrfkyVXdbXKSXh******8cwpXQG0pRkEVcXzCHcPTG86jIVCzY18Rky8Pjw=="
}

其中 data 原始数据为

data:[{depart_name: "测试部门1"}]

正常返回值为

{
    "code": null,
    "data": "成功1条,失败0条",
    "success": true,
    "message": "successful!",
    "status": "default"
}

获取部门列表 action=listDepart

  • 入参
字段 说明 是否可为空
pub_key 企业公钥 N
action 当前值为listDepart N
  • 返回值
返回字段 说明
code
data 人员列表信息
success 是否成功,true:成功,false:失败
message 返回信息(发生错误时的错误信息)
status 返回状态,默认:default或 错误代码

dataJSONArray结构

字段 说明 备注
depart_id 部门id 36位uuid
depart_name 部门名称
depart_address 部门地址
contact_information 联系方式
comments 说明
pid 上级部门id 36位uuid
  • 请求示例

HTTP请求示例

 GET /openAPI HTTP/1.1
 Host: https://ectcs.hrsecn.com
 Content-Type: application/json
 {
     "action": "listDepart",
     "pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
}

正常返回值为

{
    "code": null,
    "data": [
        {
            "comments": null,
            "contact_information": null,
            "depart_address": null,
            "depart_id": "00afe***e-***88b2fc",
            "depart_name": "研发组二",
            "pid": "ef6****fc-*****00afe088",
        }.....
    ],
    "success": true,
    "message": "successful!",
    "status": "default"
}

导入人员 action=importUser

  • 入参
字段 说明 是否可为空
pub_key 企业公钥 N
data 加密后的数据 N
action 当前值为importUser N

dataJSONArray结构

字段 属性类型及限制 说明 是否可为空 备注
depart_name String(50) 部门名称 N
name String(50) 姓名 N
id_number String(20) 身份证号码 N
phone_number String(11) 手机号码 N
union_pay_type String(4) 银联卡类型 Y 目前支持:农业银行/工商银行/建设银行/中国银行
union_pay_number String(30) 银联卡号码 Y
address String(50) 户籍地址 N
live_address String(50) 居住地址 N
emergency_name String(30) 紧急联系人 N
emergency_sex String(4) 紧急联系人性别 N 男/女
emergency_relation String(10) 紧急联系人 与本人关系 N
emergency_phone_number String(30) 紧急联系人联系方式 N
employee_status String(10) 员工状态 N 状态有:待入职/实习/试用/转正/离职/兼职
entry_time String 入职时间 N 格式为yyyy-MM-dd
job_description String(50) 工作职责 Y
salary String(10) 薪资 Y
workplace String(50) 工作地点 Y
job_post String(30) 工作岗位 Y
trial_salary String(10) 试用期薪资标准 Y
contract_start_time String 合同开始时间 Y 格式为yyyy-MM-dd
contract_expire_time String 合同到期时间 Y 格式为yyyy-MM-dd
official_time String 转正时间 Y 格式为yyyy-MM-dd
  • 返回值
返回字段 说明
code
data
success 是否成功,true:成功,false:失败
message 返回信息(发生错误时的错误信息)
status 返回状态,默认:default或 错误代码
  • 请求示例

HTTP请求示例

GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
    "action": "importUser",
    "pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
    "data": "Pu4TX9tQo0jC7w0cu8oZthVjlnhgEANFSRtjTMA4UaYjEgT36ygZ+Lp2PfeP6O5az9X8Ma5lOOmlu8C301d1zvIKH4X+Z9niOhZE+qIyOZojdmqoPCqhTEB54mjK7MgcbjPbNxFViyVLCYhPGltIb5ny478zDbmaS/wFZLXnWuhSC*******/nGaGyXzxUizYYjNd6oG8AD3mAvBjwhKP+c1IKv/yE68G*******uBh5fAhUuJaCwdsoJmkJGSJGR/j3VSdewIydW0YdmLX3upMfCyCbNxv0nOw6Bm7C4Zxdz4ZjaUEt3XD328*******Z0Czy3ihSDAMuRhXV43TsPMzKxRMQMQRPvT2Fz0EwMNsRDgzdBb/8WWdPDoU3m2IoIRN0Rwff0NCNuuZkB9KyLHqDKkj2neABp7HQnu7Af6+/QdlagmEHSDXUEdacJRjAZwvSxrY+83Tivr/BkMa"
}
data原始数据为:
data:[{
    name: "张四",
    entry_time: "2018-01-01",
    employee_status: "实习",
    depart_name: "测试部门",
    id_number: "34******37",
    phone_number: "138****35"
    emergency_phone_number: "13********",
    emergency_relation: "父子",
    emergency_name: "张三",
    emergency_sex: "男",
}]

正常返回值为

{
    "code": null,
    "data": "成功1条",
    "success": true,
    "message": "successful!",
    "status": "default"
}

获取员工列表 action=listEmployee

  • 入参
字段 说明 是否可为空
pub_key 企业公钥 N
action 当前值为listEmployee N
  • 返回值
返回字段 说明
code
data 人员列表信息
success 是否成功,true:成功,false:失败
message 返回信息(发生错误时的错误信息)
status 返回状态,默认:default或 错误代码

dataJSONArray结构

字段 说明 备注
id 员工编码 36位uuid
id_number 身份证号
name 姓名
sex 性别 男/女
phone_number 手机号
entry_time 入职时间 yyyy-MM-dd
depart_name 部门名称
employee_status 员工状态 待入职/实习/试用/转正/离职/兼职
  • 请求示例

HTTP请求示例

 GET /openAPI HTTP/1.1
 Host: https://ectcs.hrsecn.com
 Content-Type: application/json
 {
     "action": "listEmployee",
     "pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
 }

正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)

{
    "code": null,
    "data": [
        {
            "birth": "19**-**-**",
            "depart_name": "测试部门",
            "employee_status": "实习",
            "entry_time": "2018-01-01",
            "id": "0*****d38",
            "id_number": "3**96**3",
            "name": "张四",
            "phone_number": "13******11",
            "sex": "男"
        }.....
    ],
    "success": true,
    "message": "successful!",
    "status": "default"
}

获取合同列表 action=getContractListByUser

  • 入参
字段 说明 是否可为空
pub_key 企业公钥 N
data 加密后人员id N
action 当前值为getContractListByUser N
contract_status 为'done'时只显示已签署的合同 Y
  • 返回值
返回字段 说明
code
data 返回该人员的合同列表,按发起时间倒序
success 是否成功,true:成功,false:失败
message 返回信息(发生错误时的错误信息)
status 返回状态,默认:default或 错误代码

dataJSONArray结构

字段 说明 备注
name 合同名称
start_time 合同发起时间 yyyy-MM-DD
id 合同id 36位uuid
contract_status 合同状态 待签署、已完成、已过期、已作废
url 合同签署地址 待签署(待我签署) 才有
distinguish 待签署分类 0待我签署,1待他人签署
  • 请求示例

HTTP请求示例

 GET /openAPI HTTP/1.1
 Host: https://ectcs.hrsecn.com
 Content-Type: application/json
 {
     "action": "getContractListByUser",
     "pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
     "data":"binVVN+sDis9RK4Qh2******PznOIpv4/SDLxYW6DukWTHoC3Ae83Fuft*******YU8cUHyfcsAzEaMKKlpGsjteFA="

}

正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)

{
    "code": null,
    "data": [
         {
         "id": "399bb184-ce79-4eaa-8d8e-f198cbf4a01c",
         "name": "与****劳动合同20200428",
         "start_time": "2020-04-28"
         }.....
    ],
    "success": true,
    "message": "successful!",
    "status": "default"
}

获取合同详情 action=getContractByContractID

  • 入参
字段 说明 是否可为空
pub_key 企业公钥 N
data 加密后合同id N
action 当前值为getContractByContractID N
  • 返回值
返回字段 说明
code
data 该合同的文件信息
success 是否成功,true:成功,false:失败
message 返回信息(发生错误时的错误信息)
status 返回状态,默认:default或错误代码

datajsonObject结构

字段 说明 备注
name 合同名称
start_time 合同发起时间 yyyy-MM-DD
res_path 合同下载地址 可通过该地址直接下载合同
  • 请求示例

HTTP请求示例

 GET /openAPI HTTP/1.1
 Host: https://ectcs.hrsecn.com
 Content-Type: application/json
 {
     "action": "getContractByContractID",
     "pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
     "data":"binVVN+sDis9RK4Qh2******PznOIpv4/SDLxYW6DukWTHoC3Ae83Fuft*******YU8cUHyfcsAzEaMKKlpGsjteFA="

}

正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)

{
    "code": null,
    "data": [
          "data": {
                 "start_time": "2020-04-28",
                 "res_path": "http://****.aliyuncs.com/d7cd*******b03fd7d41b.pdf?Expires=1588****&OSSAccessKeyId=LTAIrKxH7CZ*****oO%2BI%3D",
                 "name": "与梅钧翔的附件2:浙江人力资源协会防疫承诺书20200428"
             },
    ],
    "success": true,
    "message": "successful!",
    "status": "default"
}

获取人员免登陆码 action=avoidLogin

  • 入参
字段 说明 是否可为空
pub_key 企业公钥 N
data 加密后人员id N
action 当前值为avoidLogin N
  • 返回值
返回字段 说明
code
data 返回该人员的免登陆码
success 是否成功,true:成功,false:失败
message 返回信息(发生错误时的错误信息)
status 返回状态,默认:default或 错误代码
  • 请求示例

HTTP请求示例

 GET /openAPI HTTP/1.1
 Host: https://ectcs.hrsecn.com
 Content-Type: application/json
 {
     "action": "getContractListByUser",
     "pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
     "data":"binVVN+sDis9RK4Qh2******PznOIpv4/SDLxYW6DukWTHoC3Ae83Fuft*******YU8cUHyfcsAzEaMKKlpGsjteFA="

}

正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)

{
    "code": null,
    "data": "ce7557d0-5af6-4b7f-****-8252682fee55"
    "success": true,
    "message": "successful!",
    "status": "default"
}

获取合同签署记录 action=getSignLog

  • 入参
字段 说明 是否可为空
pub_key 企业公钥 N
data 加密后合同id N
action 当前值为getSignLog N
  • 返回值
返回字段 说明
code
data 该合同的签署记录
success 是否成功,true:成功,false:失败
message 返回信息(发生错误时的错误信息)
status 返回状态,默认:default或错误代码

datajsonObject结构

字段 说明 备注
sign_date 操作时间 YYYY-MM-DD HH:mm:ss
sign_operator 操作人
sign_status 操作状态 发起、查看、签署、完后、拒绝、关闭、签署,但签署失败
  • 请求示例

HTTP请求示例

 GET /openAPI HTTP/1.1
 Host: https://ectcs.hrsecn.com
 Content-Type: application/json
 {
     "action": "getContractByContractID",
     "pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
     "data":"binVVN+sDis9RK4Qh2******PznOIpv4/SDLxYW6DukWTHoC3Ae83Fuft*******YU8cUHyfcsAzEaMKKlpGsjteFA="

}

正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)

{
    "code": null,
    "data": [
        {
            "sign_date": "2020-**-** 23:41:52",
            "sign_operator": "陈**",
            "sign_status": "签署"
        }.....
    ],
    "success": true,
    "message": "successful!",
    "status": "default"
}

免登陆码有效性校验 action=checkAvoidLogin

  • 入参
字段 说明 是否可为空
pub_key 企业公钥 N
data 加密后的数据 N
action checkAvoidLogin N

datajsonObject结构

字段 属性类型及限制 说明 是否可为空 备注
id String(50) 人员主键 N
contract String(50) 合同主键 N
code String(255) 免登陆码 N
  • 返回值
返回字段 说明
code
data 免登陆码有效性校验结果,合同、人员主键
success 是否成功,true:成功,false:失败
message 返回信息(发生错误时的错误信息)
status 返回状态,默认:default或错误代码

datajsonObject结构

字段 说明 备注
id 人员主键
contract 合同主键
flag 免登陆码有效性校验结果 true,false
  • 请求示例

HTTP请求示例

GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
    "action": "checkAvoidLogin",
    "pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
    "data": "Pu4TX9tQo0jC7w0cu8oZthVjlnhgEANFSRtjTMA4UaYjEgT36ygZ+Lp2PfeP6O5az9X8Ma5lOOmlu8C301d1zvIKH4X+Z9niOhZE+qIyOZojdmqoPCqhTEB54mjK7MgcbjPbNxFViyVLCYhPGltIb5ny478zDbmaS/wFZLXnWuhSC*******/nGaGyXzxUizYYjNd6oG8AD3mAvBjwhKP+c1IKv/yE68G*******uBh5fAhUuJaCwdsoJmkJGSJGR/j3VSdewIydW0YdmLX3upMfCyCbNxv0nOw6Bm7C4Zxdz4ZjaUEt3XD328*******Z0Czy3ihSDAMuRhXV43TsPMzKxRMQMQRPvT2Fz0EwMNsRDgzdBb/8WWdPDoU3m2IoIRN0Rwff0NCNuuZkB9KyLHqDKkj2neABp7HQnu7Af6+/QdlagmEHSDXUEdacJRjAZwvSxrY+83Tivr/BkMa"
}
data原始数据为:
data:[{
    id: "06b0133a-c8c2*****b-6895f7f82df3",
    contract: "4ae1c411-1e8a-4d6e*****-934cbd514cbb",
    code: "3ff607db-25c1*****-87f3-5263d5770ee1",
}]

正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)

{
    "code": null,
    "data": {
            id: "06b0133a-c8c2*****b-6895f7f82df3",
            contract: "4ae1c411-1e8a-4d6e*****-934cbd514cbb",
            flag: true
            },
    "success": true,
    "message": "successful!",
    "status": "default"
}

错误信息参考

错误status 错误提示 message 原因及建议处理方式
ERR.ENTERPRISE_NOT_EXISTS 查无此企业 核对公钥是否正确
ERR.DECRYPT_ERR 数据解密错误 参考接口示例
ERR.DATA_ERR 数据格式转化错误 data部分需要是规范的jsonArray 或jsonObject
ERR.NO_MATCH_ACTION 未找到接口 核对action属性
ERR.DEPART_NAME IS NULL 部门名称为空 部门名称不允许为空,请核对
ERR.DEPART_NAME IS DUPLICATE 部门名称重复 部门名称不允许重复,请核对
ERR.USER_ERR 用户信息错误 用户信息错误,请核对
ERR.DEPART OWN NEXT LEVEL DEPART 部门拥有下层部门 请先删除下层部门在删除该部门
ERR.DEPART_NAME NOT EXIST 部门名称不存在 请核对部门名称
Copyright © 2019-2020 浙江省人力资源服务协会 all right reserved,powered by Gitbook该文档修订时间: 2020-11-04 09:33:21

results matching ""

    No results matching ""