# 【代开发服务商】知识付费行业接入文档

更新时间: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 接口响应说明

响应整体结构:

字段含义
result1 表示成功,其他表示请求不成功
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_idString服务商小程序appID
authorizer_access_tokenString参照https://open.kuaishou.com/docs/saas/develop/api/auth/process.html服务商授权流程获取。

# 资源上传

# 3.1 图片上传

主要是封面、头像等,上传图片后,会得到一个图片的key。后续其他接口需要图片的地方,都使用这个key;具体可以参考创建接口。

POST /openapi/mp/tp/mpcourse/img/upload

字段名类型是否必填描述
imgUrlString图片链接

响应:

{
    "result": 1,
    "error_msg": "success",
    "data": {
        "imgKey": "08b180ab0110a2ecf9ce07"
    }
}

# 3.2 视频上传

平台收到视频上传请求后,会返回videoId,其他接口中需要视频资源的信息填入这个videoId。

平台会进行视频处理,包括视频下载、转码,需要等平台处理成功后才可以进行后续处理。如果上传失败,请更换一个资源链接重新尝试,或者半小时后重试。

POST /openapi/mp/tp/mpcourse/video/url/upload

字段名类型是否必填描述
urlString

1.如果链接带有有效期,请确保链接有效期足够长(建议一周),防止资源挤兑排队时,无法下载重新排队的情况。

2.m3u8视频链接path部分必须带.m3u8后缀,比如xxxx.m3u8?auth_key=xxx.

3.m3u8协议比较复杂,部分情况可能支持不是很完善,建议提前测试,有问题随时反馈。

callbackUrlString

回调地址。

会告知处理结果:

1.处理中

2.转码成功

3.转码失败

4.视频拉取失败


 

通知可能重复、可能会丢。

1.消息要做好幂等处理。

2.不要强依赖回调通知,通过查询接口查视频状态。

回调数据格式

 

{
    "data": {
        "app_id": "ks707065143182458884",
        "current_time": 1718195302042,
        "video_id": "af41cc28dcb81961",
        "status": 2
    },
    "message_id": "0d41e36a-57a3-4244-9d81",
    "event": "MP_VIDEO_EVENT",
    "app_id": "ks707065143182458884",
    "timestamp": 1718195302936
}

 

开发者接收到消息后返回平台的http状态码应是200,并且返回字段result=1代表成功,其他都是代表失败,失败平台会重试调用。

 

{
  "result":1,
  "message_id":"0d41e36a-57a3-4244-9d81"
}

 


 

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

字段名类型是否必填描述
urlString1.如果链接带有有效期,请确保链接有效期足够长(建议一周),防止资源挤兑排队时,无法下载重新排队的情况。
callbackUrlString回调地址;同上述视频处理一致。

响应示例:

{
    "result": 1,
    "error_msg": "success",
    "data": {
        "audioId": "6f12929486ffc8d5"
    }
}

# 3.4 资源状态查询

POST /openapi/mp/tp/mpcourse/resource/info

字段名类型是否必填描述
resourceIdString资源id,videoId或者audioId

响应示例

字段名类型是否必填描述
statusint

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对象课程基础信息,具体见下。
episodeInfoListList<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
        }
    },
字段名类型是否必填描述
titleString标题
totalEpisodeNumberInteger课节
coverString课程封面
pathString

落地页地址,确保path在小程序中存在

平台会在path上自动拼接ksCourseId参数

introduceString课程介绍
chargeOrNotBoolean是否收费
updateDoneOrNotBoolean是否更新完结
notifyUrlString

回调通知URL

用于接收:课程审核结果通知、课程封禁通知


 

通知可能重复、可能会丢。

1.消息要做好幂等处理。

2.不要强依赖回调通知,通过查询接口确认状态。


 

回调数据格式

课程审核结果通知:

 

{
    "data": {
        "course_id": "kmc5199124422800784093",
        "approve_time": 1721197866015,  // 审核时间(毫秒时间戳)
        "version": 2,
        "status": 3  // 2 审核通过,3 审核驳回
    },
    "message_id": "e1f935bf-9c2d-426e-a330-598a5ddab82b",
    "event": "MP_COURSE_NOTIFY",
    "app_id": "ks694117293240723718",
    "timestamp": 1721197866025
}

 

课程封禁通知:

 

{
  "data": {
    "course_id": "kmc5230649617951844114", //课程id
    "operation_time": 1752570909684, //封禁/解禁时间
    "ban_reason": "封禁原因", // 暂时/永久封禁时回传
    "version": 1, //版本
    "ban_type": 2 //封禁类型:1解封 2暂时封禁 3永久封禁
  },
  "message_id": "810cb3c4-def9-4788-a4b9-07c17367bdc9",
  "event": "MP_COURSE_BAN_NOTIFY",
  "app_id": "ks707065143182458884",
  "timestamp": 1752570909786
}

 


 

开发者接收到消息后返回平台的http状态码应是200,并且返回字段result=1代表成功,其他都是代表失败,失败平台会重试调用。

 

// 示例 response
{
    "result": 1,
    "message_id": "68e5e3d9-cc16-4711-839c-bca9eqae41"
}

 


 

webhook接入详细文档:https://open.kuaishou.com/platform/openApi?menu=60

secondCategoryInteger

二级类目

语言学习

家庭教育

考证考试

通识教育

经营管理

投资理财

书法绘画

音乐乐器

舞蹈运动

手工制作

演讲口才

其他休闲兴趣

医疗健康

情感心理

其他生活健康

影视短剧

二次元

游戏

演绎

其他娱乐

厨师烹饪

时尚美业

家政服务

工程机械

三农

其他职业

新媒体运营

小本创业

软件技能

IT互联网

职场技能

销售技能

purchasePrecationString购买须知
teachTypeInteger

教学类型:

1.线上

2.线下

serviceTypeInteger

服务形式

1对1教学

1对多教学

无后续服务提供

validPeriodInteger

有效期

1.下单3个月

2.3 ~ 12个月

3.永久有效

supportTrialBoolean是否支持试看
teacherInfo对象

 老师信息:  

name老师名字
introduce老师介绍
imgKey老师头像
kwaiId

快手号。

若接入交易多方分账能力(快手小程序多方分账能力),该字段必填。该字段需要保证和预下单接口out_account_id的已授权用户为同一人


 

giftInfo对象

赠品信息      

name赠品名称
amount赠品数量
refundPolicy赠品退款策略说明
type

赠品类型

1.实物

2.虚拟


 

# 课节信息

字段名类型是否必填描述
titleString课节标题
episodeNumberInteger第几课节
videoIdString视频资源id
audioIdString音频资源id
imageIdListList<String>图片资源id。注意:每集的媒资不能太多
introduceString课节介绍
supportTrialBoolean是否支持试看
pathString课节对应的小程序落地页,平台会拼接平台的参数

请求示例:

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

字段名类型是否必填描述
courseIdString课程id
versionString审核通过的版本号
episodeInfoListList[]分节信息见创建接口定义

示例:

{
    "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

字段名类型是否必填描述
courseIdString课程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

字段名类型是否必填描述
courseIdString课程id
versionInteger课程版本

响应示例:

{
    "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

字段名类型是否必填描述
courseIdString课程id
versionInteger课程版本

响应:

{
    "result": 1,
    "error_msg": "success"
}

# 4.7 上架课程

上线课程

POST  /openapi/mp/tp/mpcourse/online

字段名类型是否必填描述
courseIdString课程id
versionInteger课程版本

响应示例

{
    "result": 1,
    "error_msg": "success",
    "data": {
        "courseId": "kmc5251197293891645830",
        "version": 1
    }
}

失败示例:

{
    "result": 10000453,
    "error_msg": "该版本已经上架"
}
错误码含义
10000513课程被暂时封禁
10000512课程被永久封禁

预下单接口字段影响说明:

需在预下单接口「goods_id」字段,传入下单课程的course_id。平台仅允许「上架」状态的课程进行售卖,其余情况将作拦截。

预下单影响接口:

接口说明接口文档
预下单(有收银台、无收银台)https://open.kuaishou.com/docs/develop/server/epay/open-api-new/prePay-new.html
苹果IAP支付接入说明https://open.kuaishou.com/docs/develop/server/iosEpayAbility/iosEpayGuide.html
服务商担保支付接入接口文档https://open.kuaishou.com/docs/saas/develop/api/authMiniapp/epay.html
服务商担保支付接入接口文档(无收银台版)https://open.kuaishou.com/docs/saas/develop/api/authMiniapp/epayWithChannel.html

预下单错误码

错误码描述排查建议
10000726未传入商品id传入商品id
10000727无商品信息,暂不支持购买传入非指定商品id,请参考good_id传入规范
10000728商品暂不支持购买商品暂不支持购买,永久封禁

# 4.8 下架课程

下线课程

POST  /openapi/mp/tp/mpcourse/offline

字段名类型是否必填描述
courseIdString课程id
versionInteger课程版本

响应示例:

{
    "result": 1,
    "error_msg": "success",
    "data": {
        "courseId": "kmc5251197293891645830",
        "version": 1
    }
}

# 4.9 查询小程序下所有课程的封禁状态以及封禁原因

GET  /openapi/mp/tp/mpcourse/list

参数放在query内,接口是个分页查询,需要查询所有数据可以进行多次查询

字段名类型是否必填描述
pageNumInteger页数
pageSizeInteger每页数据量,最大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
}
Copyright ©2026, All Rights Reserved