创建预约单
收藏
我的收藏用户购买预售类产品支付成功后,开发者可调用该接口创建预约单。目前只支持同商品 id 合并预约,即 ItemBookInfo 里的 goods_id 需要相同
使用限制
目前仅适用于预售类商品,如门票预售券、日历房预售券等
接口说明
基本信息
名称 | 描述 |
HTTP URL | |
HTTP Method | POST |
Scope | industry_open.trade.book |
权限要求 | 无需用户授权 |
请求头
请求参数
Body
名称 | 类型 | 是否必填 | 描述 |
order_id | string | 是 | 抖音侧订单号 |
out_book_no | string | 是 | 外部预约单号 |
open_id | string | 是 | 用户OpenID |
item_book_info_list | Array<object> | 是 | 每个item的预约信息,详见ItemBookInfo |
markup_info | object | 否 | 加价信息,详见MarkupInfo |
ItemBookInfo 字段说明
名称 | 类型 | 是否必填 | 描述 |
poi_id | string | 是 | 预约门店的poiId,实际存储的是int64类型的值 |
shop_name | string | 是 | |
ext_shop_id | string | 是 | 预约门店的外部店铺id,参考商铺同步接口中的接入方店铺id(supplier_ext_id) |
goods_id | string | 是 | 商品id |
book_start_time | int64 | 是 | 预约的开始时间(ms),13位毫秒时间戳 |
book_end_time | int64 | 是 | 预约的结束时间(ms),13位毫秒 时间戳 注意:需满足 当前时间< book_start_time < book_end_time,并且book_end_time必须是180天之内 |
user_info_list | Array<object> | 否 | 用户信息,详见UserInfo |
book_sku_info | object | 否 | 预约的商品SKU信息,需要加价时必填,详见BookSkuInfo
|
item_order_id | string | 否 | 预售单的item_order_id,如果不指定的话,会自动分配。 |
UserInfo 字段说明
名称 | 类型 | 是否必填 | 描述 |
name | string | 否 | 使用人名称 |
phone | string | 否 | 电话号码 |
id_card_no | string | 否 | 身份证号码 |
BookSkuInfo 字段说明
名称 | 类型 | 是否必填 | 描述 |
price | int64 | 否 | sku金额
|
sku_id | string | 是 | 预约的商品sku_id |
sku_id_type | int32 | 是 | sku_id类型 1-商品库skuId 2-非商品库skuId |
MarkupInfo 字段说明
名称 | 类型 | 是否必填 | 描述 |
total_amount | int64 | 是 | 加价单订单总金额 |
pay_notify_url | string | 否 | 支付结果通知地址,必须是https类型。若不填,默认使用在行业模板配置-消息通知页面设置的支付回调地址。加价单支付超时时间是300s。配置地址为:https://developer.open-douyin.com/microapp/${appid}/industry/template,注意将此地址中的${appid}更换为自己的appid |
out_markup_no | string | 是 | 加价单的开发者单号,长度 <= 64 byte |
order_entry_schema | object | 是 | 订单详情页信息,详见 OrderEntrySchema |
OrderEntrySchema 字段说明
名称 | 类型 | 是否必填 | 描述 |
path | string | 是 | 订单详情页跳转路径,没有前导的“/”,长度 <= 512byte |
params | string | 否 | 订单详情页路径参数,自定义的json结构,序列化成字符串存入该字段,平台不限制,但是写入的内容需要能够保证生成访问订单详情的schema能正确跳转到小程序内部的订单详情页,长度 <= 512byte |
请求示例
非加价预约 demo
curl --location --request POST 'https://open.douyin.com/api/apps/trade/v2/create_book \ --header 'Content-Type: application/json' \ --header 'access_token: xxxxxxxxxxxxxxxx' --data-raw='{ "order_id": "ot7117199930837961004", "out_book_no": "zxsw4443rette54ert53", "open_id": "194437895436262" "item_book_info_list": [ { "book_end_time": 1657110479000, "book_start_time": 1657110478000, "ext_shop_id": "2341", "goods_id": "7116799885390841900", "poi_id": "4355", "shop_name": "345245", "user_info_list": [ { "id_card_no": "123456789012345678", "name": "zxs", "phone": "12321234322" } ] }, { "book_end_time": 1657110479000, "book_start_time": 1657110478000, "ext_shop_id": "2341", "goods_id": "7116799885390841900", "poi_id": "4355", "shop_name": "345245", "user_info_list": [ { "id_card_no": "123456789012345678", "name": "zxs", "phone": "12321234322" } ] } ] }'
加价预约 demo
curl --location --request POST 'https://open.douyin.com/api/apps/trade/v2/create_book \ --header 'Content-Type: application/json' \ --header 'access_token: xxxxxxxxxxxxxxxx' --data-raw='{ "order_id": "ot7117199930837961004", "out_book_no": "zxsw4443rette54ert53", "open_id": "194437895436262", "item_book_info_list": [ { "book_end_time": 1657110479000, "book_start_time": 1657110478000, "ext_shop_id": "2341", "goods_id": "7116799885390841900", "poi_id": "4355", "shop_name": "345245", "user_info_list": [ { "id_card_no": "123456789012345678", "name": "zxs", "phone": "12321234322" } ], "book_sku_info": { "price": 10, "sku_id": "7216799885390841901", "sku_id_type": 2 } }, { "book_end_time": 1657110479000, "book_start_time": 1657110478000, "ext_shop_id": "2341", "goods_id": "7116799885390841900", "poi_id": "4355", "shop_name": "345245", "user_info_list": [ { "id_card_no": "123456789012345678", "name": "zxs", "phone": "12321234322" } ], "book_sku_info": { "price": 10, "sku_id": "7216799885390841901", "sku_id_type": 2 } } ], "markup_info": { "total_amount": 5, "out_markup_no": "zxsw123512dadqweqe", "order_entry_schema": { "path": "page/order" } } }'
响应参数
名称 | 类型 | 是否必填 | 描述 |
data | Json Object | 否 | 返回数据信息 |
extra | object | 是 | 额外信息 |
data 字段说明
名称 | 类型 | 是否必填 | 描述 |
book_id | string | 是 | 预约单id |
markup_order_info | object | 否 | 加价单信息,详见 MarkupOrderInfo |
MarkupOrderInfo 字段说明
名称 | 类型 | 是否必填 | 描述 |
markup_order_id | string | 是 | 加价单id,抖音开平侧生成的订单号 |
pay_order_id | string | 是 | 唤起收银台的支付订单号 |
pay_order_token | string | 是 | 唤起收银台的token |
extra 信息
名称 | 类型 | 是否必填 | 描述 | 示例值 |
error_code | int | 是 | 错误码,0为成功 | 0 |
description | string | 是 | 错误码描述 | success |
sub_error_code | int | 是 | 子错误码 | 0 |
sub_description | string | 是 | 子错误码描述 | success |
logid | string | 是 | 请求id | 2022092115392201020812109511046 |
now | int | 是 | 毫秒级时间戳 | 1663745962686 |
响应示例
非加价预约示例
{ "data": { "book_id": "ot707233865982238" }, "extra": { "sub_error_code": 0, "sub_description": "success", "logid": "2022092115392201020812109511046", "now": 1663745962686, "error_code": 0, "description": "success" } }
加价预约示例
{ "data": { "book_id": "ot707233865982238", "markup_order_info": { "markup_order_id": "ot717123543556796", "pay_order_id": "712312312313131238", "pay_order_token": "xxxxxxxxxxx" } }, "extra": { "sub_error_code": 0, "sub_description": "success", "logid": "2022092115392201020812109511046", "now": 1663745962686, "error_code": 0, "description": "success" } }
错误码