景区预约创建订单
接口说明
1.POST方法
2.用户发起预约,抖音侧调用第三方服务商接口创建景区的预约单,务必按照错误码规范返回错误码,如果遇到需要重试的错误码,抖音侧会进行12次重试,每次间隔1分钟。如果最终失败,抖音侧会执行取消预约流程,并通知三方。
基本信息
Scope | life.capacity.scenic_promissory_create_order | |||
权限要求 | 景区行业解决方案-景区团购预下单接口 | |||
回调场景 | 景区团购预下单 | |||
请求头
•Content-Type:
application/json•X-Bytedance-Logid: 请求 logid, 用于问题排查用
•x-life-clientkey: 服务商应用的 client_key
•X-life-sign: 请求签名,签名规则
请求参数
字段 | 类型 | 名称 | 是否必传 | 说明 |
biz_type | int | 业务类型 | 是 | 3:团购在线预约 |
contact | list<UserInfo> | 联系人信息列表 | 否 | |
.name | string | 姓名 | 否 | |
.en_name | string | 英文名 | 否 | |
.first_name | string | 英文名的名 | 否 | |
.last_name | string | 英文名的姓 | 否 | |
.phone | string | 联系电话 | 否 | 加密 |
.email | string | 邮箱 | 否 | 加密 |
.credential_type | int | 证件类型 | 否 | 1 、身份证 2 、港澳通行证 3 、台湾通行证 4 、回乡证 5 、台胞证 6 、护照 7 、外籍护照 |
..credential_no | string | 证件号 | 否 | 加密 |
.credential_validity | string | 证件有效期 | 否 | |
original_amount | long | 订单原价 | 是 | 通常用分表示 |
currency_code | string | 货币类型 | 是 | 默认人民币CNY |
open_id | string | 登录账户抖音 uid | 是 | |
order_id | string | 抖音订单id | 是 | |
create_order_time | long | 订单创建时间 | 是 | 时间戳(秒) |
order_item_list | list<OrderItem> | 订单项列表 | 是 | |
.order_item_id | string | 订单项 ID | 是 | |
.sku_id | string | SkuId(如果是组合品,则是组合品商品的 SkuId) | 是 | |
.book_start_day | string | 预定开始日期 | 是 | yyyy-MM-dd |
.book_end_day | string | 预定结束日期 | 是 | yyyy-MM-dd |
.sub_sku_id | string | 组合品子商品 ID(可选) | | |
.package_id | string | 组合 ID | 否 | |
sku_info_list | list<SkuInfo> | 商品信息列表 | 是 | |
.sku_id | string | sku_id (Sku) | 是 | |
.sku_out_id | string | 外部sku_id (SkuInfo) | 否 | |
.product_id | string | 商品id | 是 | |
.ticket_specification | object | 票种规格说明 | 否 | |
..ticket_session | object | 场次 | 否 | |
...ticket_session_name | string | 名称 | 否 | |
...ticket_session_time | string | 时间 | 否 | |
..ticket_seat | string | 坐席 | 否 | |
..ticket_area | string | 区域 | 否 | |
.ticket_rule | object | 票务规则 | 否 | 包含凭证方式、券码类型、券码服务商 |
..code_sending_info | list<int32> | 凭证发放方式 | 否 | 多选(建议全部写入list,凭证回调时,如果有额外类型的凭证会报错) 1 身份证件 2 券号 3 券码 6 链接URL |
..code_type | int32 | 券码类型 | 否 | 日历票 code_type = 2 |
..url_type | int32 | URL凭证类型 | 否 | 如果code_sending_info=6 凭证类型为url,则必填 |
.appointment_rule | object | 预约规则 | 否 | |
..ahead_day | int32 | 需要提前X天预约 | 否 | |
..ahead_sec | int64 | 预约提前时间 | 否 | 单位:秒. i.e. 20:00点前预约,值为 72000 |
..part_appointment | bool | 是否支持分开预约 | 否 | |
..open_time_period | object | 开放预约时间 | 否 | |
...start_time | string | 起始时间 | 否 | |
...end_time | string | 结束时间 | 否 | |
.appointment_cancel_rule | object | 预约取消规则 | 否 | |
..cancel_type | int32 | 取消类型 | 否 | 2 不可取消,4 限时取消(按规则),5 未用随时取消 |
..cancel_detail_list | list<object> | 取消规则明细 | 否 | |
...max_cancel_time | object | 最晚取消时间 | 否 | |
....day | int32 | 天 | 否 | |
....hour | int32 | 小时 | 否 | |
....minute | int32 | 分 | 否 | |
.traveler_info | object | 出行人群(对应商品 crowds) | 否 | |
..total_num | int32 | 出行人数 | 否 | |
..diff_target_crowd | bool | 是否区分人群 | 否 | |
..crowd_list | list<object> | 人群列表 | 否 | |
...crowd_type | int32 | 人群类型 | 否 | Child=1 儿童 Adult=2 成人 Old=3 老人Student=4 学生Special=5 特殊人群Male=6 男士Female=7 女士Group=8 团体Couple=9 情侣Military = 10 军人 Teacher = 11 教师 Disabled = 12 残疾 |
...traveler_num | int32 | 此人群的适用人数 | 否 | |
sub_sku_info_list | list<object> | 组合品的子商品信息列表 | 否 | 当订单中购买的是组合品的时候有值。列表中每一项的结构和父商品相同 |
poi_id | string | 抖音 POI_ID(即门店id) | 是 | |
reserve_info_list | list<object> | 留资人信息列表 | 否 | |
.name | string | 姓名 | 否 | |
.en_name | string | 英文名 | 否 | |
.first_name | string | 英文名的名 | 否 | |
.last_name | string | 英文名的姓 | 否 | |
.phone | string | 联系电话 | 否 | 加密 |
.email | string | 邮箱 | 否 | 加密 |
.credential_type | int | 证件类型 | 否 | |
.credential_no | string | 证件号 | 否 | 加密 |
.credential_validity | string | 证件有效期 | 否 | |
.order_item_id | string | 关联order_item_id | 否 | |
.sku_id | string | 关联sku_id | 否 | |
.package_id | string | 组合 ID | 否 | |
请求示例
- •普通预定订单
{ "biz_type": 3, "contact": [ { "phone": "********" } ], "original_amount": 6, "currency_code": "CNY", "open_id": "29015228290123", "order_id": "1086750457623060123", "source_order_id": "1086799590422100123", "create_order_time": 1753341993, "order_item_list": [ { "order_item_id": "800011992063494528213950123", "sku_id": "1837705522582539", "book_start_day": "2025-07-24", "book_end_day": "2025-07-24" } ], "sku_info_list": [ { "product_id": "1837705522582539", "sku_id": "1837705522582539", "sku_out_id": "sku_1", "ticket_rule": { "code_sending_info": [ 2, 3, 1 ], "code_type": 2, "url_type": 0 }, "appointment_rule": { "ahead_day": 0, "ahead_sec": 82800, "open_time_period": { "start_time": "00:00", "end_time": "23:59" } }, "appointment_cancel_rule": { "cancel_type": 5 }, "traveler_info": { "total_num": 2, "diff_target_crowd": true, "crowd_list": [ { "crowd_type": 2, "traveler_num": 1 }, { "crowd_type": 1, "traveler_num": 1 } ] } } ], "poi_id": "poi_id_xxx", "reserve_info_list": [ { "name": "成人1", "phone": "********", "credential_type": 1, "credential_no": "******", "credential_validity": "2126-05-22", "sku_id": "1837705522582539" } ] }
- •组合品预定订单
{ "biz_type": 3, "contact": [ { "phone": "********" } ], "original_amount": 6, "currency_code": "CNY", "open_id": "29015228290123", "order_id": "1086750457623060123", "source_order_id": "1086799590422100123", "create_order_time": 1753341993, "order_item_list": [ { "order_item_id": "800011992063494528213950123", "sku_id": "1837701683630105", "package_id": "1837701683630105_1", "book_start_day": "2025-07-24", "book_end_day": "2025-07-24", "sub_sku_id": "1837705522582539" }, { "order_item_id": "800011992063494656213150123", "sku_id": "1837701683630105", "package_id": "1837701683630105_1", "book_start_day": "2025-07-24", "book_end_day": "2025-07-24", "sub_sku_id": "1837705522582539" }, { "order_item_id": "800011992063494528213950133", "sku_id": "1837701683630105", "package_id": "1837701683630105_2", "book_start_day": "2025-07-24", "book_end_day": "2025-07-24", "sub_sku_id": "1837705522582571" }, { "order_item_id": "800011992063494656213150133", "sku_id": "1837701683630105", "package_id": "1837701683630105_2", "book_start_day": "2025-07-24", "book_end_day": "2025-07-24", "sub_sku_id": "1837705522582571" } ], "sku_info_list": [ { "product_id": "1837701683630105", "sku_id": "1837701683630105", "sku_out_id": "main_sku_1", "ticket_rule": { "code_sending_info": [ 2, 3, 1 ], "code_type": 2, "url_type": 0 }, "appointment_rule": { "ahead_day": 0, "ahead_sec": 82800, "open_time_period": { "start_time": "00:00", "end_time": "23:59" } }, "appointment_cancel_rule": { "cancel_type": 5 }, "traveler_info": { "total_num": 2, "diff_target_crowd": true, "crowd_list": [ { "crowd_type": 2, "traveler_num": 1 }, { "crowd_type": 1, "traveler_num": 1 } ] }, "sub_sku_info_list": [ { "product_id": "1837705522582539", "sku_id": "1837705522582539", "sku_out_id": "sub_sku_1" }, { "product_id": "1837705522582571", "sku_id": "1837705522582571", "sku_out_id": "sub_sku_2" } ] } ], "poi_id": "poi_id_xxx", "reserve_info_list": [ { "name": "成人1", "phone": "********", "credential_type": 1, "credential_no": "******", "credential_validity": "2126-05-22", "pacakage_id": "1837701683630105_1" }, { "name": "成人2", "phone": "********", "credential_type": 1, "credential_no": "******", "credential_validity": "2126-05-22", "pacakage_id": "1837701683630105_2" } ] }
响应参数
字段 | 类型 | 名称 | 是否必传 | 说明 |
error_code | int | 错误码 | 是 | 0 表示成功,其他表示错误,错误码见文末列表 |
error_msg | string | 错误信息 | 否 | 错误码非 0 时提供 |
order_id | string | 抖音订单 id | 是 | |
ext_order_id | string | 外部订单号 | 是 | |
fail_sku_id_list | list<string> | 失败的 skuID 列表 | 否 | 因库存或价格创建订单失败时返回,否则默认全部 skuId 均失败 |
响应示例
{ "data": { "error_code": 20001, "description": "部分商品库存不足或价格已变动", "order_id": "10000000000000000001", "ext_order_id": "ext_order_123456789", "fail_sku_id_list": [ "sku_id_001", "sku_id_002" ] } }
错误码
失败码定义
error_code | 失败原因 | 是否用户感知 |
1 | 库存不足 | 是 |
2 | 商品已下架 | 是 |
3 | 当前出行人已购票 | 是 |
4 | 当前出行日期已购票 | 是 |
5 | 年龄不符合,仅限指定年龄的用户购买 | 是 |
6 | 性别不符合,仅限指定性别的用户购买 | 是 |
7 | 已持有该门票或超出购买限制 | 是 |
10 | 用户地区不符合,仅限特定地区的用户购买 | 是 |
13 | 缺少证件信息 | 是 |
15 | 出行人数和份数不匹配 | 是 |
19 | 手机号格式问题 | 是 |
20 | 证件号格式问题 | 是 |
21 | 姓名格式问题 | 是 |
22 | 商家账户余额不足,无法下单(服务商场景使用) | 是 |
23 | 价格不一致 | 是 |
100 | 商家系统内部异常,需要抖音侧重新尝试调用 | 否 |
999999 | 其他错误,商家自定义 | 否 |
