预下单回调
通过模板组件/JS API 发起下单时,抖音开平交易系统会请求开发者服务,将下单信息传递给开发者服务。
使用限制
调用接口前需先完成预下单扩展点设置,请参考行业模板配置文档
接口说明
无
基本信息
基本信息 | ||||
HTTP URL | 预下单回调地址的设置请参考行业模板配置文档中的实现扩展点 create_order_callback | |||
HTTP Method | POST |
请求头
请求参数
名称 | 类型 | 是否必填 | 描述 | 示例值 |
msg | string | 是 | 预下单相关信息的 json 字符串,详情参见msg字段 | 详情参见请求示例 |
type | string | 是 | 枚举值:
| "pre_create_order" |
version | string | 是 | 固定值:"2.0",即回调版本,用于开发者识别回调参数的变更 | "2.0" |
msg 字段
名称 | 类型 | 是否必填 | 描述 |
order_id | string | 是 | 抖音开平侧生成的订单号 |
goods | Array<object> | 否,与sku_list字段二选一 | 商品信息,详情见goods字段 |
sku_list | Array<object> | 否,与goods字段二选一 | 商品信息,详情见 sku_list参数 部分,sku下单会返回,该字段未来会取代 goods 字段(goods 字段将逐步淘汰)。使用该字段下单暂不支持营销扩展点能力。 |
total_amount | int64 | 是 | 订单总价格,单位分 用户实付金额 = total_amount - discount |
discount | int64 | 是 | 订单折扣,单位分 |
cp_extra | string | 否 | 预下单时开发者定义的透传信息 |
create_order_time | int64 | 是 | 订单创建时间,13 位时间戳,单位毫秒 |
open_id | string | 是 | 用户 OpenID |
phone_num | string | 否 | 用户手机号 |
contact_name | string | 否 | 联系人姓名 |
app_id | string | 是 | 小程序id |
union_id | string | 否 | 用户的 UnionID |
delivery_type | int | 是 | 核销类型,开平告知此订单是否可走闭环核销判断结果。
|
price_calculation_detail | object | 否 | 营销算价结果信息,详情见字段描述 |
address | object | 否 | 有物流配送需求的时候提单页会让用户填入配送地址,本字段存储用户的收货地址。注:本字段当前仅开放给泛知识行业使用,其他行业可暂时不用关注该字段 |
open_book_info | object | 否 | 预约信息,目前应用于酒旅、门票预售券类场景中,详情参见open_book_info字段说明 |
item_order_info_list | Array<object> | 是 | item_order信息,详情参见item_order_info_list字段说明 |
price_calculation_detail 字段说明
名称 | 类型 | 是否必填 | 描述 |
calculation_type | int32 | 是 | 算价维度类型
|
goods_discount_detail | Array<object> | 否 | 商品算价结果,详情见字段描述 |
order_discount_detail | object | 否 | 订单算价结果,详情见字段描述 |
item_discount_detail | Array<object> | 否 | 单商品算价结果详情见字段描述 |
ext_calculation_no | string | 否 | 外部算价结果号 |
说明如下:
- 1.订单原价total_amount,订单总优惠total_discount_amount
- ◦total_amount = sum(goods_calculation_result_info.total_amount) = sum(item_calculation_result_info.total_amount)
- ◦total_discount_amount=order_total_discount_amount + goods_total_discount_amount,订单总优惠金额=商品维度的优惠金额+订单维度的优惠金额
- 2.calculation_type表示计算优惠分摊的类型
- ◦calculation_type=1,将优惠分摊到 goods 层,请求体包含 order_calculation_result_info,goods_calculation_result_info
- ◦calculation_type=2,将优惠分摊到item层,请求体包含order_calculation_result_info,goods_calculation_result_info,item_calculation_result_info
- 3.order_calculation_result_info,goods_calculation_result_info,item_calculation_result_info表达的是优惠分摊逻辑。order, goods, item代表订单的三层结构,order有N个goods,每个goods有M个item(M表示份数),item表示单份商品。订单总优惠金额 = order层的优惠聚合 = goods层的优惠聚合 = item层的优惠聚合
- 4.举个例子,一笔订单购买2杯奶茶,总价100元,使用80-10活动和星冰乐单品立减5元优惠券,实付金额85元,表达分摊的逻辑如下
- ◦订单总优惠金额 total_discount_amount = 1500,单位分
- ◦order层,order_calculation_result_info,order_total_discount_amount=1000,goods_total_discount_amount=500
- ◦goods层,goods_calculation_result_info数组长度为1,goods[0].total_discount_amount=1500
- ◦item层,item_calculation_result_info数组长度为2,items[0].total_discount_amount=750,items[1].total_discount_amount=750
order_discount_detail 字段说明
名称 | 类型 | 是否必填 | 描述 |
order_total_discount_amount | number | 是 | 订单维度总优惠金额,单位分 |
goods_total_discount_amount | number | 是 | 商品(sku)维度总优惠金额,单位分 |
marketing_detail_info | Array<object> | 否 | 营销明细,详情见字段描述 |
goods_discount_detail 字段说明
名称 | 类型 | 是否必填 | 描述 |
goods_id | string | 是 | 商品 id |
quantity | number | 是 | 购买数量 |
total_amount | number | 是 | 商品总价,单位分 |
discount_amount | number | 是 | 该商品总优惠金额 该商品的实付金额 = total_amount - discount_amount |
marketing_detail_info | Array<object> | 否 | 营销明细,详情见字段描述 |
item_discount_detail 字段说明
名称 | 类型 | 是否必填 | 描述 |
goods_id | string | 是 | 商品 id |
total_amount | number | 是 | 商品总价,单位分 |
discount_amount | number | 是 | 该商品总优惠金额 该商品的实付金额 = total_amount - discount_amount |
marketing_detail_info | Array<object> | 否 | 营销明细,详情见字段描述 |
marketing_detail 字段说明
说明如下:
- •marketing_detail_info在order,goods,item三个层级都有,区别是它表示某个营销项在这一层级分摊的优惠金额。比如一笔订单购买2杯奶茶,总价100元,使用优惠券A满100-10元,实付90元。优惠券A会出现在3个层级的marketing_detail_info里
- ▪在 order 层,detailA.discount_amount=1000,单位[分]
- ▪在goods层,detailA.discount_amount=1000,
- ▪在 item 层,由于优惠分摊到两份商品上,detailA1.discount_amount=500,detailA2.discount_amount=500
- •discount_range,表示优惠的维度,举个例子
- ◦星冰乐单品5折券属于商品维度优惠,discount_range=2
- ◦订单满200-20属于订单维度优惠,discount_range=1
名称 | 类型 | 是否必填 | 描述 |
id | string | 是 | 营销 ID(用户身份 ID、优惠券 ID、积分 ID 或者活动 ID) |
type | number | 是 | 营销类型,
|
discount_amount | number | 是 | 该营销策略优惠金额,单位分 |
title | string | 是 | 营销名称(长度小于等于64字节) |
note | string | 否 | 营销备注 |
discount_range | number | 是 | 营销适用维度:
|
subtype | string | 否 | 营销子类型 |
value | i64 | 否 | 不同 type 含义不同,比如 type 为 4 时指积分值 |
goods 字段说明
名称 | 类型 | 是否必填 | 描述 |
img_url | string | 是 | 商品图片链接 |
title | string | 是 | 商品标题 |
sub_title | string | 否 | 商品副标题 |
labels | string | 是 |