API 说明
该接口用于修改已添加或进审中的课程,调用成功后课程进审,审核通过后更新课程信息。调用修改课程接口不会影响已添加课程的上下架状态。具体修改流程如下:
| HTTP URL | 正式环境:https://developer-product.zijieapi.com/product/api/modify 沙盒环境:https://open-sandbox.douyin.com/product/api/modify |
|---|---|
| HTTP Method | POST |
| 权限要求 | AccessToken鉴权 |
该接口用于添加新课程,调用成功后会返回课程唯一标识 product_id 且课程会进审,审核通过后课程上架。具体添加流程如下:
注意,对相关履约内容的审核结果通过开发者所注册的回调接口返回,详见【泛知识】回调通知
价格单位为分,必须为整形,不能带小数
real_price 与 range_min_price,range_max_price 互斥
real_price 与 range_min_price,range_max_price 必选其中一项填写
价格大小限制关系: 0 < real_price <= price <= 1000000,0 < range_min_price <= price <= range_max_price <= 1000000
接入交易系统后,提单页价格以 price 参数为准
若需要营销活动,可接入交易系统营销拓展点
示例:
// 交易组件提单页价格展示为50元
{
"unit": "节",
"price": 5000,
"real_price": 5000
}
// 交易组件提单页价格展示为50元
{
"unit": "节",
"price": 5000,
"range_min_price": 5000,
"range_max_price": 5000
}
在 query 中必须附带"course_id"字段,同一小程序中,"course_id"对应值作为课程的唯一标识,不可与其他课程重复,具体值的设定及唯一化由开发者实现,course_id 长度限制 1 ~ 128 字节,path 长度限制 1 ~ 255 字节。
注意:若只需对路径信息进行修改,可以调用【泛知识】修改课程免审进行修改
| 名称 | 类型 | 是否必填 | 描述 | 示例 |
|---|---|---|---|---|
| path | string | 是 | 课程商品详情页路径,没有前导的'/',0< path字符长度 <= 255字节 | "page/index/index" |
| query | map(string,string) | 否 | 课程商品详情页路径query参数 0< key字符长度 <= 64字节 0< value字符长度 <= 128字节 0<"course_id"对应值长度<=128 | { "course_id": "4938274" } |
示例
// 完整路径如果是 page/index/index?course_id=4938274,path_info如下
{
"path": "page/index/index",
"query": {
"course_id": "4938274" // 注意此处key和value都必须为string类型,否则接口会报400错误
}
}
可以是文字,图片,图文或者富文本类型
| 名称 | 类型 | 是否必填 | 描述 | 示例 |
|---|---|---|---|---|
| text | string | 否 | 文字和图文类型必填,0< text字符长度 <= 10000字节,汉字占1个字符,该字段仅用于填写文字内容,富文本内容请在在填写在rich_text.text字段 | "该节课程主要用于帮助在方面得到的提升" |
| img_uri | string | 否 | 图片和图文类型必填,uri需要调用上传课程资源接口成功后获取 | "product/resource/1001d044d41140d53ce9e57d793a4321" |
| rich_text | object | 否 | 富文本类型必填,字符不要做转义,需要符合富文本格式,0< text字符长度 <= 100000字节,汉字占1个字符 | { "text": "支持HTML格式,不支持转义" } |
| 名称 | 类型 | 是否必填 | 描述 | 示例 |
|---|---|---|---|---|
| text | string | 是 | 富文本字符串,字符不要做转义,需要符合富文本格式,0< 字符长度 <= 100000字节,汉字占1个字符 | "支持HTML格式,不支持转义" |
| 名称 | 类型 | 是否必填 | 描述 | 示例 |
|---|---|---|---|---|
| video_anchor_info | object | 是 | 视频锚点信息,0< anchor_title字符长度 <= 24字节,汉字占2个字符 | { "anchor_title": "示例锚点标题" } |
| 名称 | 类型 | 是否必填 | 描述 | 示例 |
|---|---|---|---|---|
| type | enum | 是 | 赠品类型,枚举值 1:实物赠品,需要物流, 2:虚拟赠品,线上赠送 | 1 |
| name | string | 是 | 赠品名 | xxx课后辅导材料 |
| num | int | 是 | 赠品数量 | 10 |
| pics | array | 否 | 赠品展示图 数量限制<=8,单个长度限制<=256字节 | ["http://xxxxxx","http://yyyyyy"] |
| send_back_policy | object | 是 | 赠品退还策略, 详见下方send_back_policy | { "send_back_on_refund": 0, "policy_desc": "退款可不退赠品" } |
注:赠品信息填写后,提单页即可支持填写地址信息,用于用户填写赠品收货地址,具体提单页展示如下

| 名称 | 类型 | 是否必填 | 描述 | 示例 |
|---|---|---|---|---|
| send_back_on_refund | enum | 是 | 退款是否需要退回,枚举值 0:退款不需要退还赠品 1:需要退还赠品 | 1 |
| policy_desc | string | 是 | 退款策略描述 长度限制<=128字节 | 退款可不退赠品 |
若仅修改以下字段,将直接免审通过,预计15 分钟后,在交易时生效。
| 免审字段 | 类型 | 描述 |
|---|---|---|
| path_info_lst | array | 抖音视频挂载的小程序页面路径列表,0< 列表长度 <= 500,详见path_info参数介绍 |
| refund_label | object | 退款标签,详见refund_label参数介绍 |
| use_label | object | 使用标签,详见use_label参数介绍 |
| start_timestamp | number | 课程开始时间,毫秒时间戳, 0< start_timestamp < end_timestamp |
| end_timestamp | number | 课程结束时间,毫秒时间戳, 0< start_timestamp < end_timestamp |
| course_num | number | 课程节数, 0< course_num <= 10000 |
| price_info | object | 课程价格信息,价格单位为分,免审范围: 1000<= price <= 200000, 1000<= real_price <= 200000, 1000<= range_min_price <= 200000, 1000<= range_max_price <= 200000 价格超过范围,信息会送审 |
| gift_info | object | 赠品信息,详见gift_info参数介绍 |
| 履约类型 | 履约类型编码 | 上传方式 |
|---|---|---|
| 视频 | 1 | 课程资源上传接口上传 |
| 音频 | 2 | 课程资源上传接口上传 |
| 图片 | 3 | 课程资源上传接口上传 |
| 文字 | 4 | 功能接口字段中直接携带上传 |
| 图文 | 5 | 课程资源上传接口上传 |
| 富文本 | 6 | 功能接口字段中直接携带上传 |
| Pdf文档 | 7 | 课程资源上传接口上传 |
| Office文档 | 8 | 课程资源上传接口上传 |
| 退款标签类型 | 退款标签类型编码 |
|---|---|
| 「xx天未学可退」 | 1 |
| 「学习进度不足xx%可退」 | 2 |
| 固定退款规则 | 3 |
curl --location --request POST '/product/api/modify' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"access_token": "0801121846756b44471029384758795958537a647053646f773d3d",
"product_type": 1,
"product_id": 6543216888019123456,
"product": {
"common_product_params": {
"appid": "tt11fd1220e13bba1234",
"first_class": 10000,
"second_class": 10100,
"title": "python入门教程",
"purchase_precaution": "小程序内购买课程为课程兑换权益,购买成功后将自动兑换到您的账户内,可在****中重复学习观看",
"product_fulfillment_lst": [
{
"fulfillment_content": {
"fulfillment_uri": "product/resource/1001d044d41140d53ce9e57d793a4321",
"name": "第一节: python介绍"
},
"fulfillment_type": 3
}
],
"industry_type": 1,
"price_info": {
"unit": "节",
"price": 5000,
"real_price": 4900
},
"path_info_lst": [
{
"path": "page/index/index",
"query": {
"course_id": "29384759"
}
}
],
"product_detail_lst": [
{
"rich_text": {
"text": "<b><i>1. python安装步骤</i></b>"
}
}
],
"anchor_info": {
"video_anchor_info": {
"anchor_title": "python入门教程"
}
},
"product_img_uri": "tos-cn-i-b2i6zad4el/b0e72a2e9c5ee919c65a9b0276315cf9"
},
"course_params": {
"teacher_id": "T7283947392973",
"institution_id": "I1039473947393",
"course_num": 637,
"refund_label": {
"type": 1,
"day_before_use_info": {
"day": 7
}
},
"use_label": {
"valid_date": "2022-12-01"
},
"start_timestamp": 1649662751000,
"end_timestamp": 1681198751000
}
}
}'{
"err_msg": "string",
"err_no": 0,
"log_id": "string",
"data": {
"audit_id": "string"
}
}