【泛知识】添加课程
API 说明
该接口用于添加新课程,调用成功后会返回课程唯一标识 product_id 且课程会进审,审核通过后课程上架。具体添加流程如下:
接口说明
前提条件
- 添加的课程必须为首次上传,若要修改已有课程请调用修改课程接口
- 资源 uri 类型的字段需要先调用资源上传接口,收到上传成功回调消息,或者调用查询资源上传状态接口确认状态为上传成功后才有效,否则会报"无效的 uri"错误
注意事项
- 审核通过后返回的 product_id 才生效,审核不通过返回的 product_id 失效,按照要求修改后需要重新调用添加课程接口上传获取新的 product_id
- 审核通过后自动上架,无需再调用上架课程接口
- 课程上传后会按序审核,常见审核失败问题可见泛知识课程库常见问题
- 调用添加接口后,如果需要对审核中的课程进行修改,请调用修改课程接口
- 若未做额外备注,string 类型的字段默认支持字符集为 utf-8
- 价格单位统一为分
基本信息
HTTP URL | 正式环境:https://developer-product.zijieapi.com/product/api/add 沙盒环境:https://open-sandbox.douyin.com/product/api/add |
---|---|
HTTP Method | POST |
权限要求 | AccessToken鉴权 |
product_fulfillment--履约内容
注意,对相关履约内容的审核结果通过开发者所注册的回调接口返回,详见【泛知识】回调通知
price_info--价格信息
价格单位为分,必须为整形,不能带小数
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
}
path_info--路径信息
在 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错误
}
}
product_detail--商品详情
可以是文字,图片,图文或者富文本类型
名称 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
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格式,不支持转义" } |
rich_text--商品详情富文本内容
名称 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
text | string | 是 | 富文本字符串,字符不要做转义,需要符合富文本格式,0< 字符长度 <= 100000字节,汉字占1个字符 | "支持HTML格式,不支持转义" |
anchor_info--锚点信息
名称 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
video_anchor_info | object | 是 | 视频锚点信息,0< anchor_title字符长度 <= 24字节,汉字占2个字符 | { "anchor_title": "示例锚点标题" } |
gift_info--赠品信息
名称 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
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_policy--赠品退还策略
名称 | 类型 | 是否必填 | 描述 | 示例 |
---|---|---|---|---|
send_back_on_refund | enum | 是 | 退款是否需要退回,枚举值 0:退款不需要退还赠品 1:需要退还赠品 | 1 |
policy_desc | string | 是 | 退款策略描述 长度限制<=128字节 | 退款可不退赠品 |
枚举参数
fulfillment_type--履约类型
履约类型 | 履约类型编码 | 上传方式 |
---|---|---|
视频 | 1 | 课程资源上传接口上传 |
音频 | 2 | 课程资源上传接口上传 |
图片 | 3 | 课程资源上传接口上传 |
文字 | 4 | 功能接口字段中直接携带上传 |
图文 | 5 | 课程资源上传接口上传 |
富文本 | 6 | 功能接口字段中直接携带上传 |
Pdf文档 | 7 | 课程资源上传接口上传 |
Office文档 | 8 | 课程资源上传接口上传 |
refund_label->type(退款标签类型)
退款标签类型 | 退款标签类型编码 |
---|---|
「xx天未学可退」 | 1 |
「学习进度不足xx%可退」 | 2 |
固定退款标签 | 3 |
curl --location --request POST 'https://developer-product.zijieapi.com/product/api/add' \
--header 'Aweme-Check-Type;' \
--header 'Content-Type: application/json' \
--data-raw '{
"access_token": "0801121846756b44471029384758795958537a647053646f773d3d",
"product_type": 1,
"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": {
"product_id": 0,
"audit_id": "string"
}
}