# 事件回调

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

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

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

课程满意度推送

课程满意度反馈使用独立的配置和推送记录,接收成功以HTTP 200为准,响应体可以为空。配置入口、请求字段及返回要求见本页 课程满意度反馈推送

# 考试答卷回调

# 功能说明

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

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

# 调用方式

方式: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";
}

# 课程满意度反馈推送

# 功能说明

学员提交课程满意度后,轻速云平台可以按每日设置的时间,将新增反馈逐条发送到您自己的系统。每次HTTP请求携带一条反馈,包含学员信息、一个选定的自定义字段、课程信息、满意度及建议内容。

在管理端 租户中心 - 系统设置 - 课程满意度推送 中填写回调URL、回调密钥、学员自定义字段和每日推送时间,并开启推送。该页的配置与推送记录独立于开放平台设置。

自动推送覆盖本租户所有已开启课程满意度调查的课程,从启用时刻开始累计;开启前和关闭期间的历史反馈不会自动补推。配置及周期调整规则见 课程满意度推送

# 调用方式

方式:POST

请求地址:课程满意度推送 中配置的回调URL。

Content-Type:application/json

# 回调请求体示例

{
    "type": "courseFeedback",
    "ts": 1788890400000,
    "secretKey": "your-course-feedback-secret-key",
    "eventBody": {
        "userId": "member-id-1",
        "userCode": "zhangsan",
        "userName": "张三",
        "customInfo": "华东区/研发中心",
        "courseId": "course-id-1",
        "courseName": "新员工入职培训",
        "feedbackTime": 1788829200000,
        "satisfaction": 1,
        "content": "课程内容清晰,希望增加实际操作案例。"
    }
}

# 字段说明

字段 类型 说明
type string 固定为 courseFeedback,表示课程满意度反馈
ts number 本次发送时间,Unix毫秒时间戳;人工重试时会更新
secretKey string 本功能配置的回调密钥,接收方应与约定密钥核对
eventBody object 单条反馈内容

eventBody 字段如下:

字段 类型 说明
userId string 学员ID
userCode string 学员账号
userName string 学员姓名
customInfo string 所选学员自定义字段的可读值
courseId string 课程ID
courseName string 课程名称
feedbackTime number 学员首次成功提交反馈的时间,Unix毫秒时间戳
satisfaction number 满意度结果:1 非常满意,2 满意,3 不满意
content string 建议或意见,最多500个字符;未填写时为空字符串

学员账号、姓名、课程名称及自定义字段值按自动发送时的信息获取。学员资料已不存在时,账号和姓名为空字符串。

# 学员自定义字段

成员 - 自定义信息 中维护成员字段,再在 课程满意度推送学员自定义字段 中选择一个。开启推送时必须选择字段,但学员未填写该字段仍会正常推送反馈。

接口字段名固定为 eventBody.customInfo,类型为字符串,字段名不会随管理端的显示名称变化。例如,选择 所属单位 且学员填写 示例公司 时,发送的是 "customInfo": "示例公司"

不同类型的取值方式如下:

自定义字段类型 取值规则 customInfo 示例
文本 成员填写的文本 "示例公司"
日期 成员填写的日期或日期时间内容,按字符串发送 "2026-09-01"
下拉框(单选) 成员选中的选项值 "总部"
多级下拉框(单条路径) 各级选项名称使用 / 连接 "华东区/研发中心"
多级下拉框(多条路径) 各条可读路径使用英文分号 ; 连接 "华东区/研发中心;华南区/销售中心"
未填写、所选字段已删除或学员资料不存在 字段仍保留,值为空字符串 ""

例如,学员未填写所选字段时,请求中的这一项为 "customInfo": "",不会因此跳过该学员的反馈,也不会省略该字段。

# 接收与返回

接收方应先核对 secretKey,完成反馈处理后返回HTTP 200。响应体可以为空,也可以返回业务内容,系统按HTTP状态码判断接收结果。

HTTP 201、204、302及其他非200状态码均记为失败;系统不会跟随重定向。网络异常或请求超时也会记为失败,单条反馈发送失败后仍会继续发送后续反馈。

同一学员对同一课程只提交一份反馈,接收方可按 courseIduserId 识别反馈,并对重复接收进行幂等处理。ts 表示每次发送的时间,不应用作反馈的唯一标识。

# 推送记录与人工重试

课程满意度推送记录 中查看发送结果和实际请求体。对于失败记录,修正接收接口或配置后,可以使用 批量重试

人工重试使用当前回调URL和密钥,更新 ts,保留原有 eventBody。已成功的记录不可重试,每条记录最多人工重试10次。