# 事件回调

使用事件回调功能,需要在管理端 管理中心 - 系统设置 - 开放平台设置 - 回调URL 配置您的回调地址,配置好之后通知您的开发人员针对回调业务做对应的接口开发。

点击 回调历史记录 可以查看回调请求结果,成功则返回success字符串,其余返回结果均为失败。

对于回调失败的记录,可以手动进行重试。

# 考试答卷回调

# 功能说明

学员考试结束成功交卷后,轻速云平台可以将考试结果推送到您自己平台的接口,您的平台可以实时获取到学员考试结果数据。答卷回调功能需要在试卷设置里开启,具体开启流程如下。

在试卷设置里,考试后的配置中,可以看到启用回调开关,启用之后此试卷的考试结果才会实时推送到您的平台。

# 调用方式

方式:post

# 回调请求体示例

{
    "ts":"2022-01-08 17:39:42.388", // 事件发送的时间
    "uuid":"229381ace3264e7ba8bf6d520d30922a", // 事件的唯一标识
    "secretKey":"2918148edb9a4939857a8b3a387127f6", // 校验密钥,管理端系统资料 - 密钥
    "type":"answerSheet", // 消息类型 answerSheet:答卷内容回调
    "callbackUrl":"http://www.***.com/eventCallBack", // 回调URL
    "eventBody":{
        "id":"d7453b7a9a6f4fe892d5c7895a95b5c8", // 答卷id
        "paperId":"18081428190", // 试卷ID
        "paperName":"试卷名称",
        "userId":"d7453b7a9a6f4fe892d5c7895a95b5c8", // 成员ID
        "examineeCode":"zhanghao", // 成员账号
        "examineeName":"张三", // 成员姓名
        "totalScore":100, // 试卷总分
        "passScore":60, // 试卷及格分
        "realScore":0, // 成员考试得分
        "useDuration":6, // 考试用时(单位:秒)
        "judged":1, // 是否已判卷,1为已判卷,空和0为未判卷,未判卷的答卷需要后台阅卷
        "startTime":1641634772902, // 开始考试时间
        "endTime":1641634779413 // 完成考试时间
    }
}

提示

示例为非公开试卷,若为公开试卷,则会携带采集信息。

接收方法示例(JAVA):

@PostMapping("/eventCallBack")
public void eventCallBack(@RequestBody Map<String, Object> params, HttpServletRequest request, HttpServletResponse response) {
    // 业务逻辑
}

# 课程完成信息回调

# 功能说明

学员完成课程学习后,轻速云平台可以将学习信息推送到您自己平台的接口,您的平台可以实时获取到学员学习结果数据。课程完成信息回调功能需要在课程设置里开启,具体开启流程如下。

在课程设置里,其他设置中,可以看到启用回调开关,启用之后此课程的学习结果才会实时推送到您的平台。

# 调用方式

方式:post

# 回调请求体示例

{
    "ts":"2022-01-08 17:39:42.388", // 事件发送的时间
    "uuid":"229381ace3264e7ba8bf6d520d30922a", // 事件的唯一标识
    "secretKey":"2918148edb9a4939857a8b3a387127f6", // 校验密钥,管理端系统资料 - 密钥
    "type":"courseFinish", // 消息类型 courseFinish:课程回调
    "callbackUrl":"http://www.***.com/eventCallBack", // 回调URL
    "eventBody":{
                "courseId": "b3fbfab6df73439e81f741d4ef7e5cc7", //课程id
                "courseName": "回调课程111", //课程名称
                "coursewareCount": 4, //课程所含课件数
                "finishedCount": 4,   //学员完成课件数
                "finishedTime": 1664521661000, //完成时间
                "id": "248c84c209004b0fb0e719406a7f35e5", //课程进度id
                "nickName": "月清疏", //学员姓名
                "studyedDuration": 110, //学习时长
                "userCode": "1001",  //学员账号
                "userId": "11bf7d9d6c9c426980d5f6e8ca163c01" //学员id
        }
}

接收方法示例(JAVA):

@PostMapping("/eventCallBack")
public void eventCallBack(@RequestBody Map<String, Object> params, HttpServletRequest request, HttpServletResponse response) {
    // 业务逻辑
}

# 课程知识完成信息回调

# 功能说明

学员完成课件学习后,轻速云平台可以将学习信息推送到您自己平台的接口,您的平台可以实时获取到学员学习结果数据。课件完成信息回调功能需要在课程设置里开启,具体开启流程如下。

在课程设置里,其他设置中,可以看到启用回调开关,启用之后此课程对应课件的学习结果才会实时推送到您的平台。

# 调用方式

方式:post

# 回调请求体示例

{
    "ts":"2022-01-08 17:39:42.388", // 事件发送的时间
    "uuid":"229381ace3264e7ba8bf6d520d30922a", // 事件的唯一标识
    "secretKey":"2918148edb9a4939857a8b3a387127f6", // 校验密钥,管理端系统资料 - 密钥
    "type":"coursewareFinish", // 消息类型 coursewareFinish:课程-课件回调
    "callbackUrl":"http://www.***.com/eventCallBack", // 回调URL
    "eventBody": {
        "courseCatalogId": "95fe7c9f8938415ea081221321ab8f2a", //课件记录id
        "courseId": "b3fbfab6df73439e81f741d4ef7e5cc7",  //课程id
        "courseName": "回调课程111", //课程名称
        "coursewareId": "e5931d8dc06c43f9be46900381bcdd94", //课件id
        "coursewareName": "单独的课件学15秒", //课件名称
        "finished": 1, //是否完成
        "finishedTime": 1664522482000, //完成时间
        "id": "a0045b461b244d8685e1567b3c106cbd",
        "nickName": "林黛玉", //学员姓名
        "progress": 0, //学习进度
        "startTime": 1664522468000, //开始时间
        "studyDuration": 15, //学习时长
        "userCode": "1003", //学员账号
        "userId": "51d52d99793f407d996d40f2021f3680" //学员id
    }
}

接收方法示例(JAVA):

@PostMapping("/eventCallBack")
public void eventCallBack(@RequestBody Map<String, Object> params, HttpServletRequest request, HttpServletResponse response) {
    // 业务逻辑
}

# 打卡完成信息回调

# 功能说明

学员完成打卡学习后,轻速云平台可以将打卡结果信息推送到您自己平台的接口,您的平台可以实时获取到学员学习结果数据。打卡完成信息回调功能需要在打卡设置里开启,具体开启流程如下。

# 调用方式

方式:post

# 回调请求体示例

{
        "ts": "2023-07-13 09:53:17.017", // 事件发送的时间
        "uuid": "82d4d230d1ce403e9e457dff93dd0dbd", // 事件的唯一标识
        "secretKey": "4d5f3185284041f0b00d1c3f79a50f62", // 校验密钥,管理端系统资料 - 密钥
        "type": "clockFinish", // 消息类型 clockFinish:打卡学习回调
        "callbackUrl": "http://xxxxx/finishCallBack", // 回调URL
        "eventBody": {
                "id": "58297eb5cabb4b0d9b7720635d9ab75a", // 答卷id
                "clockId": "9999", //打卡任务id
                "clockName": "打卡任务名称",
                "days": 1, //坚持天数
                "examineeCode": "1002", // 成员账号
                "examineeName": "龙葵", // 成员姓名
                "totalAmount": 1, // 总题数
                "wrongAmount": 1, // 答错题数
                "startTime": 1689213152000, // 答题开始时间
                "endTime": 1689213158000, // 答题结束时间
                "rightRatio": "0.00%" // 正确率
        }
}

接收方法示例(JAVA):

@PostMapping("/eventCallBack")
public void eventCallBack(@RequestBody Map<String, Object> params, HttpServletRequest request, HttpServletResponse response) {
    // 业务逻辑
}

# 学习地图完成信息回调

# 功能说明

学员完成学习地图(新员工培训)学习后,轻速云平台可以将学习信息推送到您自己平台的接口,您的平台可以实时获取到学员学习结果数据。学习地图完成信息回调功能需要在学习地图设置里开启,具体开启流程如下。

在学习地图设置里,可以看到启用回调开关,启用之后此学习地图的学习结果才会实时推送到您的平台。

# 调用方式

方式:post

# 回调请求体示例

{
    "ts":"2022-01-08 17:39:42.388", // 事件发送的时间
    "uuid":"4ad6a21fada241e9aeff90d814779fcb", // 事件的唯一标识
    "secretKey":"2918148edb9a4939857a8b3a387127f6", // 校验密钥,管理端系统资料 - 密钥
    "type":"mapFinish", // 消息类型 mapFinish:学习地图回调
    "callbackUrl":"http://www.***.com/eventCallBack", // 回调URL
    "eventBody":{
                "id": "9999", //学习地图id
                "name": "回调地图123", //学习地图名称
                "mustProgress": 1, //必修课件学习进度
                "selectProgress": 0.5, //选修课件学习进度
                "totalTaskNum": 4, //学习地图任务数量
                "finishedCount": 4,   //学员完成课件数
                "nickName": "月清疏", //学员姓名
                "studyedDuration": 110, //学习时长
                "userCode": "1001",  //学员账号
                "userId": "11bf7d9d6c9c426980d5f6e8ca163c01" //学员id
        }
}

接收方法示例(JAVA):

@PostMapping("/eventCallBack")
public void eventCallBack(@RequestBody Map<String, Object> params, HttpServletRequest request, HttpServletResponse response) {
    // 业务逻辑
}

# 学习地图任务完成信息回调

# 功能说明

学员完成学习地图(新员工培训)的关联任务后,轻速云平台可以将学习信息推送到您自己平台的接口,您的平台可以实时获取到学员学习结果数据。学习地图任务完成信息回调功能需要在学习地图设置里开启,具体开启流程如下。

在学习地图设置里,可以看到启用回调开关,启用之后此学习地图的学习结果才会实时推送到您的平台。

# 调用方式

方式:post

# 回调请求体示例

{
    "ts": "2026-01-04 17:36:25.760", // 事件发送的时间
    "uuid": "d91d4b81008146c1b1a7b57015d2aab5", // 事件的唯一标识
    "secretKey": "xfbca1ecf82a48b5b4h828dtae1d1160", // 校验密钥,管理端系统资料 - 密钥
    "type": "taskFinish", // 消息类型 taskFinish:学习地图任务回调
    "callbackUrl": "https://www.***.com/eventCallBack", // 回调URL
    "eventBody": {
      "id": "c326ef84b519404cb3a9bff0362ab549", // 学习地图任务记录主键id(可忽略)
      "factoryCode": "100000", // 租户编号
      "mapId": 9115, // 学习地图id
      "mapRecordId": "360e4565fe39456ea1cd1742f45ef44b", // 学习地图学员学习记录id(可忽略)
      "userId": "d55eda2b73244028b1f566e29c6f7eaf", // 学员id
      "mapTaskId": "2d1c1720e48111f089faa088c2a75020", // 学习地图任务id
      "eventId": "fd7a29567f5945d89e6611c26425cd23", // 关联项目id,如考试则为试卷id
      "eventType": 1, // 学习地图任务类型(0知识,1课程,2考试,3报名,4问卷,5证书,6作业,7培训班,8考勤,9考核,10AI陪练,11直播,12练习)
      "credit": 0, // 学习地图任务积分
      "finished": 1, // 学习地图任务完成状态(可忽略)
      "finishedTime": 1767519385000, // 学习地图任务完成时间
      "createTime": 1767519348000 // 学习地图任务开始时间
    }
}

接收方法示例(JAVA):

@PostMapping("/eventCallBack")
public void eventCallBack(@RequestBody Map<String, Object> params, HttpServletRequest request, HttpServletResponse response) {
    // 业务逻辑
}

# 学习地图配置推送

# 功能说明

学习地图的名称、阶段或任务配置新增、修改后,轻速云平台可以将学习地图配置推送到您自己平台的接口,您的平台可以获取学习地图的最新配置快照,字段范围以 eventBody 为准。

使用该功能前,需要在管理端 管理中心 - 系统设置 - 开放平台设置 中配置回调 URL,并开启 配置与证书事件推送

# 调用方式

方式:post

# 回调请求体示例

{
    "ts": "2026-09-01 14:32:00.339", // 事件发送的时间
    "uuid": "30ee2bdbacfe4c969761e058a0eb714d", // 事件的唯一标识
    "secretKey": "your-secret-key", // 校验密钥,管理端系统资料 - 密钥
    "type": "mapConfig", // 消息类型 mapConfig:学习地图配置推送
    "callbackUrl": "https://www.***.com/eventCallBack", // 回调URL
    "eventBody": {
        "mapId": 10439, // 学习地图id
        "mapName": "岗位成长地图", // 学习地图名称
        "periods": [ // 阶段列表,无阶段时为空数组
            {
                "periodId": "period-id-1", // 阶段id
                "periodName": "阶段一", // 阶段名称
                "sortIndex": 1, // 阶段排序值
                "tasks": [ // 阶段任务列表,无任务时为空数组
                    {
                        "taskId": "task-id-1", // 地图任务关系id
                        "eventType": 1, // 任务类型,1为课程
                        "eventId": "course-id-1", // 关联业务数据id
                        "eventName": "入职基础课程", // 地图中显示的任务名称
                        "sortIndex": 1, // 任务排序值
                        "taskSelectType": 0 // 0必修,1选修
                    },
                    {
                        "taskId": "task-id-2",
                        "eventType": 2, // 任务类型,2为考试
                        "eventId": "paper-id-1",
                        "eventName": "阶段考试",
                        "sortIndex": 2,
                        "taskSelectType": 1
                    }
                ]
            }
        ]
    }
}

提示

eventType 对应的任务类型:0课件,1课程,2考试,3报名,4问卷,5证书,6作业,7培训班,8考勤,9考核,10AI陪练,11直播,12练习。

接收方法示例(JAVA):

@PostMapping("/eventCallBack")
public String eventCallBack(@RequestBody Map<String, Object> params) {
    // 业务逻辑
    return "success";
}

# 课程配置推送

# 功能说明

课程名称、所属分类、关联标签、目录内容、考试或前置课程等配置新增、修改后,轻速云平台可以将课程配置推送到您自己平台的接口,您的平台可以获取课程的最新配置快照,字段范围以 eventBody 为准。

使用该功能前,需要在管理端 管理中心 - 系统设置 - 开放平台设置 中配置回调 URL,并开启 配置与证书事件推送

# 调用方式

方式:post

# 回调请求体示例

{
    "ts": "2026-09-01 14:32:01.007", // 事件发送的时间
    "uuid": "f99bd6657a364bae86c58c4e07dcac33", // 事件的唯一标识
    "secretKey": "your-secret-key", // 校验密钥,管理端系统资料 - 密钥
    "type": "courseConfig", // 消息类型 courseConfig:课程配置推送
    "callbackUrl": "https://www.***.com/eventCallBack", // 回调URL
    "eventBody": {
        "courseId": "course-id-1", // 课程id
        "courseName": "入职基础课程", // 课程名称
        "courseCategory": { // 课程直接所属分类,无分类时为null
            "categoryId": "category-id-1", // 分类id
            "categoryName": "新员工课程" // 分类名称
        },
        "tags": [ // 课程标签,无标签时为空数组
            {
                "tagId": "tag-id-1", // 标签id
                "tagName": "必学" // 标签名称
            }
        ],
        "catalog": [ // 课程目录结构
            {
                "nodeId": "directory-id-1", // 目录节点id
                "nodeType": "directory", // directory:目录
                "directoryName": "第一章", // 目录名称
                "sortIndex": 1, // 排序值
                "children": [ // 目录子节点,空目录时为空数组
                    {
                        "nodeId": "knowledge-ref-id-1", // 知识关系节点id
                        "nodeType": "knowledge", // knowledge:知识
                        "knowledgeId": "knowledge-id-1", // 知识id
                        "knowledgeName": "企业文化", // 知识名称
                        "sortIndex": 1
                    },
                    {
                        "nodeId": "exam-ref-id-1", // 考试关系节点id
                        "nodeType": "exam", // exam:目录考试
                        "paperId": "paper-id-1", // 试卷id
                        "paperName": "章节考试", // 试卷名称
                        "sortIndex": 2
                    }
                ]
            },
            {
                "nodeType": "finalExam", // finalExam:结课考试,结课考试不包含nodeId
                "paperId": "final-paper-id-1", // 试卷id
                "paperName": "结课考试", // 试卷名称
                "examQualification": 0, // 考试资格,使用系统配置的数字值
                "sortIndex": 2
            }
        ],
        "coursePrerequisiteEnable": 1, // 是否启用前置课程
        "coursePrerequisiteFinishType": 0, // 前置课程完成条件,使用系统配置的数字值
        "preCourses": [ // 前置课程列表,无前置课程时为空数组
            {
                "courseId": "pre-course-id-1", // 前置课程id
                "courseName": "入职须知", // 前置课程名称
                "sortIndex": 1 // 前置课程排序值
            }
        ]
    }
}

提示

课程目录节点类型包括:directory 目录、knowledge 知识、exam 目录考试、finalExam 结课考试。只有目录节点包含 children,结课考试不包含 nodeId

examQualification:0 表示完成课程全部内容后可参加结课考试,1 表示达到课程设置的学习时长后可参加结课考试。

coursePrerequisiteEnable:0 表示未开启前置课程,1 表示已开启前置课程。coursePrerequisiteFinishType:0 表示全部完成,1 表示任选其一完成。

接收方法示例(JAVA):

@PostMapping("/eventCallBack")
public String eventCallBack(@RequestBody Map<String, Object> params) {
    // 业务逻辑
    return "success";
}

# 证书获取推送

# 功能说明

学员获得考试、普通学习地图或新员工培训关联的证书后,轻速云平台可以将学员、证书及证书来源信息推送到您自己平台的接口。

使用该功能前,需要在管理端 管理中心 - 系统设置 - 开放平台设置 中配置回调 URL,并开启 配置与证书事件推送

考试、普通学习地图和新员工培训自动生成并正式发放的证书支持该事件。证书管理中直接手动发放的证书不在推送范围内。

已发放证书重新生成并再次正式发放成功后,可能再次产生证书获取推送。同一证书记录再次推送时,certMemberId 可能重复,每次回调以 uuid 区分。

# 调用方式

方式:post

# 回调请求体示例

{
    "ts": "2026-09-01 14:35:16.341", // 事件发送的时间
    "uuid": "451250bf0dc649f688681764069f562b", // 事件的唯一标识
    "secretKey": "your-secret-key", // 校验密钥,管理端系统资料 - 密钥
    "type": "certObtain", // 消息类型 certObtain:证书获取推送
    "callbackUrl": "https://www.***.com/eventCallBack", // 回调URL
    "eventBody": {
        "member": {
            "userCode": "zhangsan", // 学员账号
            "nickName": "张三" // 学员姓名
        },
        "certificate": {
            "certMemberId": "cert-member-id-1", // 学员证书记录id
            "certId": "cert-id-1", // 证书id
            "certName": "优秀学员证书", // 证书名称
            "certUrl": "https://static.example.com/cert/cert-member-id-1.png", // 证书图片URL
            "certSerial": "CERT-2026-0001", // 证书编号
            "publishTime": "2026-09-01 14:35:16", // 证书发放时间
            "expireTime": null // 证书失效时间,永久有效时为null
        },
        "source": {
            "sourceType": "exam", // 证书来源类型,exam:考试
            "exam": {
                "paperId": "paper-id-1", // 试卷id
                "paperName": "结业考试", // 试卷名称
                "totalScore": 100, // 试卷总分
                "realScore": 86 // 学员实际得分
            }
        }
    }
}

# 其他证书来源示例

学习地图证书的 source 结构:

{
    "sourceType": "learningMap",
    "learningMap": {
        "mapId": 10439, // 学习地图id
        "mapName": "岗位成长地图", // 学习地图名称
        "period": {
            "periodId": "period-id-1", // 阶段id
            "periodName": "阶段一" // 阶段名称
        }
    }
}

新员工培训证书的 source 结构:

{
    "sourceType": "newEmployeeTraining",
    "newEmployeeTraining": {
        "trainingId": 10440, // 新员工培训id
        "trainingName": "新员工入职培训", // 新员工培训名称
        "period": {
            "periodId": "period-id-2", // 阶段id
            "periodName": "入职培训阶段" // 阶段名称
        }
    }
}

接收方法示例(JAVA):

@PostMapping("/eventCallBack")
public String eventCallBack(@RequestBody Map<String, Object> params) {
    // 业务逻辑
    return "success";
}