第三方平台 开发指南 代开发服务商知识付费行业接入文档
# 【代开发服务商】知识付费行业接入文档
更新时间:2025-08-26 16:13:51
# 前言
首次使用本接口的开发者,请从文章起始部分开始阅读;如您使用过旧版课程库同步接口,请直接阅读第四节进行更新。本次更新内容速看:
- 4:新增封禁状态机详情、版本数据新增状态字段;
- 4.4、4.5:平台新增封禁概念,开发者适配该状态(包括封禁后的重新上下架、编辑等操作);
- 4.7:新增在预下单接口「goods_id」字段中,需传入下单课程的course_id,仅支持售卖“上架”状态下的课程;
- 4.9:新增查询接口(可支持查看小程序下所有课程的封禁状态以及封禁原因);
# 整体介绍
# 1.1 整体流程

# 1.2 小程序前端页面改造【重要‼️】
小程序前端页面需要带上ksCourseId和ksSeq,2个参数含义如下:
| ksCourseId | 创建返回的课程id |
| ksSeq | 第几课节(可选),详情页的情况 |
调整后的小程序path示例如下:
page/component/pages/checkboxV1/checkbox?ksCourseId=kmp5194339220886353542&ksSeq=4
通过这种规范能够定位到的哪个课程,可以利用快手的内容理解等能力;如不改造,后续可能会影响视频PLC挂载、直播讲解等场景使用,同时平台会限制不满足要求的内容在快手内部的曝光。
课程详情页必须严格按照要求改造页面路径。
其他涉及小程序落地页的场景,比如星火计划需要在后台填写小程序落地页地址的场景等,也需要遵守上述规范。
# 1.3 接口响应说明
响应整体结构:
| 字段 | 含义 |
| result | 1 表示成功,其他表示请求不成功 |
| error_msg | 在请求失败时,辅助判断失败原因 |
| data | 请求返回的数据,不同结果数据不一样 |
# 1.4 课节过多的情况
可以只传前100节。
# token说明
参考服务商授权流程获取authorizerAccessToken:https://open.kuaishou.com/docs/saas/develop/api/auth/process.html (opens new window)
如下服务商openapi接口的调用除各接口自己的参数外,均需携带下列两个公参:
| 字段名 | 类型 | 是否必填 | 描述 |
| component_app_id | String | 是 | 服务商小程序appID |
| authorizer_access_token | String | 是 | 参照https://open.kuaishou.com/docs/saas/develop/api/auth/process.html服务商授权流程获取。 |
# 资源上传
# 3.1 图片上传
主要是封面、头像等,上传图片后,会得到一个图片的key。后续其他接口需要图片的地方,都使用这个key;具体可以参考创建接口。
POST /openapi/mp/tp/mpcourse/img/upload
| 字段名 | 类型 | 是否必填 | 描述 |
| imgUrl | String | 是 | 图片链接 |
响应:
{
"result": 1,
"error_msg": "success",
"data": {
"imgKey": "08b180ab0110a2ecf9ce07"
}
}
# 3.2 视频上传
平台收到视频上传请求后,会返回videoId,其他接口中需要视频资源的信息填入这个videoId。
平台会进行视频处理,包括视频下载、转码,需要等平台处理成功后才可以进行后续处理。如果上传失败,请更换一个资源链接重新尝试,或者半小时后重试。
POST /openapi/mp/tp/mpcourse/video/url/upload
| 字段名 | 类型 | 是否必填 | 描述 |
| url | String | 是 | 1.如果链接带有有效期,请确保链接有效期足够长(建议一周),防止资源挤兑排队时,无法下载重新排队的情况。 2.m3u8视频链接path部分必须带.m3u8后缀,比如xxxx.m3u8?auth_key=xxx. 3.m3u8协议比较复杂,部分情况可能支持不是很完善,建议提前测试,有问题随时反馈。 |
| callbackUrl | String | 否 | 回调地址。 会告知处理结果: 1.处理中 2.转码成功 3.转码失败 4.视频拉取失败
通知可能重复、可能会丢。 1.消息要做好幂等处理。 2.不要强依赖回调通知,通过查询接口查视频状态。 回调数据格式
开发者接收到消息后返回平台的http状态码应是200,并且返回字段result=1代表成功,其他都是代表失败,失败平台会重试调用。
webhook接入详细文档:https://open.kuaishou.com/platform/openApi?menu=60
|
curl --location --request POST '线上域名/openapi/mp/developer/mpcourse/video/url/upload?app_id=xxx&access_token=xxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"url":"https://mv-video.zwlab.cn/f34409ff298442e4b099c30664b608c6/0b84c52f9485411e90b42ff59ff0b376-fa90977c43b8c51.mp4",
"callbackUrl" : "非必须"
}'
响应示例:
{
"result": 1,
"error_msg": "success",
"data": {
"videoId": "a77fedd9cb9f97a3"
}
}
# 3.3 音频上传
平台收到视频上传请求后,会返回audioId,其他接口中需要视频资源的信息填入这个audioId。
平台会进行音频处理,包括音频下载、转码,需要等平台处理成功后才可以进行后续处理。
POST /openapi/mp/tp/mpcourse/audio/url/upload
| 字段名 | 类型 | 是否必填 | 描述 |
| url | String | 是 | 1.如果链接带有有效期,请确保链接有效期足够长(建议一周),防止资源挤兑排队时,无法下载重新排队的情况。 |
| callbackUrl | String | 否 | 回调地址;同上述视频处理一致。 |
响应示例:
{
"result": 1,
"error_msg": "success",
"data": {
"audioId": "6f12929486ffc8d5"
}
}
# 3.4 资源状态查询
POST /openapi/mp/tp/mpcourse/resource/info
| 字段名 | 类型 | 是否必填 | 描述 |
| resourceId | String | 是 | 资源id,videoId或者audioId |
响应示例
| 字段名 | 类型 | 是否必填 | 描述 |
| status | int | 是 | 1.处理中 2.处理成功 3.处理失败 4.视频上传失败 |
{
"result": 1,
"error_msg": "success",
"data": {
"status": 3
}
}
# 课程相关接口
线上域名:https://open.kuaishou.com (opens new window)
相关接口都以快手的ID体系为准,不支持第三方ID的增删改查,需要注意数据影响和一致性问题。
# 审核状态机

状态说明,具体审核原因等信息,请查看4.5的说明。
| 审核状态 | 含义 |
| 0 | 待提审 |
| 2 | 审核通过 |
| 3 | 审核拒绝 |
| 4 | 审核中 |
# 封禁状态机

处于任何封禁状态的课程不允许上架以及售卖:
暂时封禁:该版本存在问题,开发者根据封禁原因调用 4.2 接口修改该课程后重新提审,审核通过后该版本课程变为正常。课程状态可通过4.5、4.6、4.9接口查看。
永久封禁:该课程版本存在严重问题,该课程开发者不能再进行编辑、追加、提审、上架。
发生封禁操作后,封禁的版本会被下架,封禁状态解除并不会上架该课程,需要开发者调用上架接口重新上架。课程只有未被封禁且在线,才能在后续下单链路使用。
封禁或解禁操作后会发送通知,具体数据格式详见4.1课程基础信息 notifyUrl字段描述
封禁状态说明,具体封禁原因等信息,请查看4.5、4.9
| 审核状态 | 含义 |
| 1 | 未封禁 |
| 2 | 暂时封禁,修改后可以再次提交。 |
| 3 | 永久封禁,改课程版本终态,禁止修改、上线等操作。 |
# 课程版本说明
课程有可能反复修改、审核,为了让数据逻辑更清晰,使用了多版本的概念。逻辑上允许多个版本存在,每个版本单独审核,也允许存在多个审核通过版本。开发者按需使用。大体逻辑:
1.每次编辑或者追加,有可能产生新的版本号,提审需要指定对应版本的内容。
2.不允许同时提交多个版本审核。
3.所有版本信息可以通过接口4.4查询。
4.最终线上只会有一个在线状态的版本,后续交易下单链路会校验接口传的课程参数状态。
# 4.1 创建课程
POST /openapi/mp/tp/mpcourse/create
创建课程包括课程基础信息和课节信息,包含一些嵌套的结构。
| 字段名 | 类型 | 是否必填 | 描述 |
| mpCourseAlbumInfo | 对象 | 是 | 课程基础信息,具体见下。 |
| episodeInfoList | List<EpisodeInfo> | 是 | 分节信息,具体参见下面 |
# 课程基础信息
"mpCourseAlbumInfo": {
"title": "测试标题",
"totalEpisodeNumber": 10,
"cover": "08e4fdaa0110c190e9c702",
"path": "page/component/pages/checkboxV1/checkbox",
"introduce": "这是一个介绍",
"chargeOrNot": true,
"updateDoneOrNot": false,
"notifyUrl": "https://data.mofangout.com/message/send",
"secondCategory": 30,
"purchasePrecation": "购买告警",
"teachType": 1,
"serviceType": 3,
"validPeriod": 1,
"supportTrial": true,
"teacherInfo": {
"name": "老师名字",
"introduce": "老师介绍",
"imgKey": "08b180ab0110a2ecf9ce07"
},
"giftInfo": {
"name": "赠品名称",
"amount": 10,
"refundPolicy": "退款策略",
"type": 2
}
},
| 字段名 | 类型 | 是否必填 | 描述 | ||||||||
| title | String | 是 | 标题 | ||||||||
| totalEpisodeNumber | Integer | 是 | 课节 | ||||||||
| cover | String | 是 | 课程封面 | ||||||||
| path | String | 是 | 落地页地址,确保path在小程序中存在 平台会在path上自动拼接ksCourseId参数 | ||||||||
| introduce | String | 是 | 课程介绍 | ||||||||
| chargeOrNot | Boolean | 否 | 是否收费 | ||||||||
| updateDoneOrNot | Boolean | 是 | 是否更新完结 | ||||||||
| notifyUrl | String | 否 | 回调通知URL 用于接收:课程审核结果通知、课程封禁通知
通知可能重复、可能会丢。 1.消息要做好幂等处理。 2.不要强依赖回调通知,通过查询接口确认状态。
回调数据格式 课程审核结果通知:
课程封禁通知:
开发者接收到消息后返回平台的http状态码应是200,并且返回字段result=1代表成功,其他都是代表失败,失败平台会重试调用。
webhook接入详细文档:https://open.kuaishou.com/platform/openApi?menu=60 | ||||||||
| secondCategory | Integer | 是 | 二级类目 语言学习 家庭教育 考证考试 通识教育 经营管理 投资理财 书法绘画 音乐乐器 舞蹈运动 手工制作 演讲口才 其他休闲兴趣 医疗健康 情感心理 其他生活健康 影视短剧 二次元 游戏 演绎 其他娱乐 厨师烹饪 时尚美业 家政服务 工程机械 三农 其他职业 新媒体运营 小本创业 软件技能 IT互联网 职场技能 销售技能 | ||||||||
| purchasePrecation | String | 是 | 购买须知 | ||||||||
| teachType | Integer | 是 | 教学类型: 1.线上 2.线下 | ||||||||
| serviceType | Integer | 是 | 服务形式 1对1教学 1对多教学 无后续服务提供 | ||||||||
| validPeriod | Integer | 是 | 有效期 1.下单3个月 2.3 ~ 12个月 3.永久有效 | ||||||||
| supportTrial | Boolean | 是 | 是否支持试看 | ||||||||
| teacherInfo | 对象 | 否 | 老师信息:
| ||||||||
| giftInfo | 对象 | 否 | 赠品信息
|
# 课节信息
| 字段名 | 类型 | 是否必填 | 描述 |
| title | String | 是 | 课节标题 |
| episodeNumber | Integer | 是 | 第几课节 |
| videoId | String | 否 | 视频资源id |
| audioId | String | 否 | 音频资源id |
| imageIdList | List<String> | 否 | 图片资源id。注意:每集的媒资不能太多 |
| introduce | String | 否 | 课节介绍 |
| supportTrial | Boolean | 是 | 是否支持试看 |
| path | String | 是 | 课节对应的小程序落地页,平台会拼接平台的参数 |
请求示例:
curl --location --request POST 'https://open-platform.staging.kuaishou.com/openapi/gw/mp/developer/mpcourse/create?app_id=xxx&access_token=XXX' \
--header 'Content-Type: application/json' \
--data-raw '{
"mpCourseAlbumInfo": {
"title": "测试课程",
"totalEpisodeNumber": 10,
"cover": "08e4fdaa0110c190e9c702",
"path": "page/component/pages/checkboxV1/checkbox",
"introduce": "这是一个介绍",
"chargeOrNot": true,
"updateDoneOrNot": false,
"notifyUrl": "https://data.mofangout.com/message/send",
"secondCategory": 30,
"purchasePrecation": "购买告警",
"teachType": 1,
"serviceType": 3,
"validPeriod": 1,
"supportTrial": true,
"teacherInfo": {
"name": "老师名字",
"introduce": "老师介绍",
"imgKey": "08b180ab0110a2ecf9ce07",
"kwaiId": "ks123"
},
"giftInfo": {
"name": "赠品名称",
"amount": 10,
"refundPolicy": "退款策略",
"type": 2
}
},
"episodeInfoList": [
{
"title": "第一课节标题",
"episodeNumber": 1,
"videoId": "48736c7442b4417c",
"audioId": "84b511784a0f426f",
"imageIdList": [
"08e4fdaa0110c190e9c702"
],
"introduce" : "第一课节介绍",
"supportTrial" : false,
"path" : "page/component/pages/checkboxV1/checkbox"
},
{
"title": "第二课节标题",
"episodeNumber": 2,
"videoId": "48736c7442b4417c",
"audioId": "84b511784a0f426f",
"imageIdList": [
"08e4fdaa0110c190e9c702"
],
"introduce" : "第二课节介绍",
"supportTrial" : true,
"path" : "page/component/pages/checkboxV1/checkbox"
}
]
}'
响应示例
{
"result": 1,
"error_msg": "success",
"data": {
"courseId": "kmc5210383420605273495",
"version": 1
}
}
| 错误码 | 含义 |
| 10000200 | 参数错误 |
| 10000430 | 并发修改 |
| 10000424 | 课程不存在, 或者课程非当前小程序创建 |
| 10000457 | 视频不存在 |
| 10000458 | 视频还在转码中 |
| 10000459 | 视频转码失败 |
| 10000460 | 图片不存在 |
# 4.2 编辑课程
POST /openapi/mp/tp/mpcourse/edit
编辑需要提供完整的课程信息,完整的课程信息见4.1。
编辑课程的信息和创建课程一致,多了一个课程id。如果是编辑已经审核过的课程,version会增加,后续通过version字段和其他版本进行区分。
编辑接口数据示例:
{
"courseId": "kmc5210383420605273495",
"mpCourseAlbumInfo": {
"title": "测试标题2",
"totalEpisodeNumber": 10,
"cover": "08e4fdaa0110c190e9c702",
"path": "page/component/pages/checkboxV1/checkbox",
"introduce": "这是一个介绍",
"chargeOrNot": true,
"updateDoneOrNot": false,
"notifyUrl": "https://data.mofangout.com/message/send",
"secondCategory": 30,
"purchasePrecation": "购买告警",
"teachType": 1,
"serviceType": 3,
"validPeriod": 1,
"supportTrial": true,
"teacherInfo": {
"name": "老师名字",
"introduce": "老师介绍",
"imgKey": "08b180ab0110a2ecf9ce07",
"kwaiId": "ks123",
},
"giftInfo": {
"name": "赠品名称",
"amount": 10,
"refundPolicy": "退款策略",
"type": 2
}
},
"episodeInfoList": [
{
"title": "第一课节标题",
"episodeNumber": 1,
"videoId": "48736c7442b4417c",
"audioId": "84b511784a0f426f",
"imageIdList": [
"08e4fdaa0110c190e9c702"
],
"introduce" : "第一课节介绍1",
"supportTrial" : false,
"path" : "page/component/pages/checkboxV1/checkbox"
},
{
"title": "第二课节标题",
"episodeNumber": 2,
"videoId": "48736c7442b4417c",
"audioId": "84b511784a0f426f",
"imageIdList": [
"08e4fdaa0110c190e9c702"
],
"introduce" : "第二课节介绍",
"supportTrial" : false,
"path" : "page/component/pages/checkboxV1/checkbox"
}
]
}
响应示例:
{
"result": 1,
"error_msg": "success",
"data": {
"courseId": "kmc5210383420605273495",
"version": 2
}
}
| 错误码 | 含义 |
| 10000200 | 参数错误 |
| 10000430 | 并发修改 |
| 10000424 | 课程不存在, 或者课程非当前小程序创建 |
| 10000457 | 视频不存在 |
| 10000458 | 视频还在转码中 |
| 10000459 | 视频转码失败 |
| 10000460 | 图片不存在 |
| 10000512 | 课程被永久封禁 |
# 4.3 追加课节
追加接口用户连载课更新的场景,必须是审核通过的版本才能追加;同时,会生成一个新的版本。如果课节比较少,直接全量更新即可。
POST /openapi/mp/tp/mpcourse/append
| 字段名 | 类型 | 是否必填 | 描述 |
| courseId | String | 是 | 课程id |
| version | String | 是 | 审核通过的版本号 |
| episodeInfoList | List[] | 是 | 分节信息见创建接口定义 |
示例:
{
"courseId" : "kmc5210383420605273495",
"version" : 2,
"episodeInfoList": [
{
"title": "第3课节标题",
"episodeNumber": 3,
"videoId": "48736c7442b4417c",
"audioId": "84b511784a0f426f",
"imageIdList": [
"08e4fdaa0110c190e9c702"
],
"introduce" : "第3课节介绍",
"supportTrial" : false,
"path" : "page/component/pages/checkboxV1/checkbox"
},
{
"title": "第4课节标题",
"episodeNumber": 4,
"videoId": "48736c7442b4417c",
"audioId": "84b511784a0f426f",
"imageIdList": [
"08e4fdaa0110c190e9c702"
],
"introduce" : "第4课节介绍",
"supportTrial" : false,
"path" : "page/component/pages/checkboxV1/checkbox"
}
]
}
响应示例:
{
"result": 1,
"error_msg": "success",
"data": {
"courseId": "kmc5210383420605273495",
"version": 3
}
}
| 错误码 | 含义 |
| 10000200 | 参数错误 |
| 10000430 | 并发修改 |
| 10000424 | 资源不存在 |
| 10000200 | 版本数量已经达到上限 |
| 10000431 | 存在审核中的记录 |
| 10000512 | 课程被永久封禁 |
# 4.4 查询课程所有版本信息
上线状态说明
onlineStatus
| 状态值 | 含义 |
| 1 | 已上线 |
| 2 | 未上线 |
POST /openapi/mp/tp/mpcourse/version
| 字段名 | 类型 | 是否必填 | 描述 |
| courseId | String | 是 | 课程id |
请求数据:
{
"courseId" : "kmc5210383420605273495"
}
响应信息
{
"result": 1,
"error_msg": "success",
"data": [
{
"version": 2,
"auditStatus": 2,
"auditStatusDesc": "审核通过",
"onlineStatus": 2,
"onlineStatusDesc": "未上线",
"banStatus": 2,
"banStatusDesc": "原因"
},
{
"version": 1,
"auditStatus": 3,
"auditStatusDesc": "审核拒绝",
"onlineStatus": 2,
"onlineStatusDesc": "未上线",
"banStatus": 2,
"banStatusDesc": "原因"
}
]
}
# 4.5 查询课程详情
审核状态说明
课程审核分为2个部分,课节信息和单节信息都给了审核结构和审核部通过的原因。
注意有三种状态:整体结果状态(versionInfo)、课程基础信息状态、每一节的状态。
1.mpCourseAlbumInfo里的auditStatus表示课程基础信息的审核状态;failReason给出了具体原因。
2.课节信息里的auditStatus表示该节课的审核状态;failReason给出了具体原因。
3.versionInfo里的审核状态表示该版本的审核状态,1和2有一个审核不通过,该状态都是审核不通过。

上线状态说明
onlineStatus
| 状态值 | 含义 |
| 1 | 已上线 |
| 2 | 未上线 |
查询某一个版本的详细信息和审核状态。
POST /openapi/mp/tp/mpcourse/detail
| 字段名 | 类型 | 是否必填 | 描述 |
| courseId | String | 是 | 课程id |
| version | Integer | 是 | 课程版本 |
响应示例:
{
"result": 1,
"error_msg": "success",
"data": {
"mpCourseAlbumInfo": {
"title": "测试标题",
"totalEpisodeNumber": 10,
"cover": "08e4fdaa0110c190e9c702",
"path": "page/component/pages/checkboxV1/checkbox?ksCourseId=kmc5199405898388293464",
"introduce": "这是一个介绍",
"chargeOrNot": true,
"updateDoneOrNot": false,
"notifyUrl": "https://data.mofangout.com/message/send",
"secondCategory": 30,
"purchasePrecation": "购买告警",
"teachType": 1,
"serviceType": 3,
"validPeriod": 1,
"supportTrial": true,
"teacherInfo": {
"name": "老师名字",
"introduce": "老师介绍",
"imgKey": "08b180ab0110a2ecf9ce07",
"kwaiId": "ks123",
"userId": 123,
},
"giftInfo": {
"name": "赠品名称",
"amount": 10,
"refundPolicy": "退款策略",
"type": 2
},
"auditStatus": 2,
"failReason":"封面课程不相关"
},
"episodeInfoList": [
{
"title": "第一课节标题",
"episodeNumber": 1,
"videoId": "48736c7442b4417c",
"audioId": "84b511784a0f426f",
"imageIdList": [
"08e4fdaa0110c190e9c702"
],
"introduce": "第一课节介绍1",
"supportTrial": false,
"path": "page/component/pages/checkboxV1/checkbox?ksCourseId=kmc5199405898388293464&ksSeq=1",
"failReason": "",
"auditStatus": 2
},
{
"title": "第二课节标题",
"episodeNumber": 2,
"videoId": "48736c7442b4417c",
"audioId": "84b511784a0f426f",
"imageIdList": [
"08e4fdaa0110c190e9c702"
],
"introduce": "第二课节介绍",
"supportTrial": false,
"path": "page/component/pages/checkboxV1/checkbox?ksCourseId=kmc5199405898388293464&ksSeq=2",
"failReason": "",
"auditStatus": 2
},
{
"title": "第3课节标题",
"episodeNumber": 3,
"videoId": "48736c7442b4417c",
"audioId": "84b511784a0f426f",
"imageIdList": [
"08e4fdaa0110c190e9c702"
],
"introduce": "第3课节介绍",
"supportTrial": false,
"path": "page/component/pages/checkboxV1/checkbox?ksCourseId=kmc5199405898388293464&ksSeq=3",
"failReason": "",
"auditStatus": 2
},
{
"title": "第4课节标题",
"episodeNumber": 4,
"videoId": "48736c7442b4417c",
"audioId": "84b511784a0f426f",
"imageIdList": [
"08e4fdaa0110c190e9c702"
],
"introduce": "第4课节介绍",
"supportTrial": false,
"path": "page/component/pages/checkboxV1/checkbox?ksCourseId=kmc5199405898388293464&ksSeq=4",
"failReason": "",
"auditStatus": 2
}
],
"versionInfo": {
"version": 3,
"auditStatus": 2,
"auditStatusDesc": "审核通过",
"onlineStatus": 2,
"onlineStatusDesc": "未上线",
"banStatus": 2,
"banStatusDesc": "原因"
}
}
}
| 错误码 | 含义 |
| 10000200 | 参数错误,版本不存在等 |
# 4.6 提交审核
POST /openapi/mp/tp/mpcourse/submit
| 字段名 | 类型 | 是否必填 | 描述 |
| courseId | String | 是 | 课程id |
| version | Integer | 是 | 课程版本 |
响应:
{
"result": 1,
"error_msg": "success"
}
# 4.7 上架课程
上线课程
POST /openapi/mp/tp/mpcourse/online
| 字段名 | 类型 | 是否必填 | 描述 |
| courseId | String | 是 | 课程id |
| version | Integer | 是 | 课程版本 |
响应示例
{
"result": 1,
"error_msg": "success",
"data": {
"courseId": "kmc5251197293891645830",
"version": 1
}
}
失败示例:
{
"result": 10000453,
"error_msg": "该版本已经上架"
}
| 错误码 | 含义 |
| 10000513 | 课程被暂时封禁 |
| 10000512 | 课程被永久封禁 |
预下单接口字段影响说明:
需在预下单接口「goods_id」字段,传入下单课程的course_id。平台仅允许「上架」状态的课程进行售卖,其余情况将作拦截。
预下单影响接口:
预下单错误码
| 错误码 | 描述 | 排查建议 |
| 10000726 | 未传入商品id | 传入商品id |
| 10000727 | 无商品信息,暂不支持购买 | 传入非指定商品id,请参考good_id传入规范 |
| 10000728 | 商品暂不支持购买 | 商品暂不支持购买,永久封禁 |
# 4.8 下架课程
下线课程
POST /openapi/mp/tp/mpcourse/offline
| 字段名 | 类型 | 是否必填 | 描述 |
| courseId | String | 是 | 课程id |
| version | Integer | 是 | 课程版本 |
响应示例:
{
"result": 1,
"error_msg": "success",
"data": {
"courseId": "kmc5251197293891645830",
"version": 1
}
}
# 4.9 查询小程序下所有课程的封禁状态以及封禁原因
GET /openapi/mp/tp/mpcourse/list
参数放在query内,接口是个分页查询,需要查询所有数据可以进行多次查询
| 字段名 | 类型 | 是否必填 | 描述 |
| pageNum | Integer | 是 | 页数 |
| pageSize | Integer | 是 | 每页数据量,最大20 |
响应示例:
{
"result": 1,
"error_msg": "success",
"data": {
"addId": "ks675258472391676089",
"total": 2,
"records": [
{
"courseId": "kmc5250352865509263461",
"version": 1,
"banStatus": 2,
"banStatusDesc": "原因"
},
{
"courseId": "kmc5254574990594720809",
"version": 1,
"banStatus": 1,
"banStatusDesc": "原因"
}
]
},
"pageNum": 1,
"pageSize": 10
}