抖音开放平台Logo
开发者文档
控制台
  • 接入前准备
  • 通用能力
  • 餐饮
  • 到店餐饮团购解决方案
  • 餐饮在线点单解决方案
  • 随心团解决方案
  • 订单推送
  • 订单支付成功 Webhook
  • 订单已接单消息 Webhook
  • 订单已拒单消息 Webhook
  • 订单退款信息同步 Webhook
  • 订单已同意/已拒绝退款消息 Webhook
  • 配送状态变更消息 Webhook
  • 账单确认Webhook
  • 订单已部分退消息 Webhook
  • 订单完成消息webhook
  • 订单配送
  • 订单查询
  • 订单接单
  • 订单退款
  • 门店配送设置
  • 结算对账
  • 大交通
  • 酒旅
  • 综合
  • 历史版本文档(不推荐)
  • 调用路径

    抖音 -> SaaS服务商

    消息说明

      用户下单并支付成功后,平台会推送此下单消息,消息体中包含订单详细信息,各技术服务商可据此消息同步生成订单。
      即时单和预约单仅涉及到用户一次支付,下单消息下发时机为用户支付成功后。
      先囤后约单涉及到用户一次支付囤券和二次支付约配送,下单消息下发时机为用户二次支付,即约配送后;
      收货地址:如果是平台配送,会对收货地址进行脱敏处理;如果是商家自配送,则不对详细地址脱敏,且会传具体的经纬度、坐标系,以支持第三方平台帮商家发起配送;
      商品结构:抖音团购配送的商品是团购套餐的形式,因此订单中的商品信息包含套餐信息和套餐内的具体菜品信息;
      金额计算:接口中新增了「amount_info」,结构更清晰,后续请以这个结构下的金额信息为准。

    对应申请能力

    订单推送
    Scope
    life.capacity.order.notice
    权限要求
    回调场景

    请求头字段

    字段
    说明
    Msg-Id
    同一实体下同一action的msg_id相同,服务商可根据msg_id对于消息去重
    X-Douyin-Signature
    抖音侧签名,服务商可根据签名判断该消息是否来自抖音开放平台
    Content-Type
    固定值application/json
    消息可能重复推送,请使用Msg_Id进行去重处理!

    请求体字段示例

    字段
    类型
    说明
    Event
    string
    消息类型,用于区分各类消息
    ClientKey
    string
    对应服务商平台或开发者平台中的APPID,应用ID
    Content
    string
    消息内容,根据需要解析消息内容,不同类型的消息内容不同
    log_id
    string
    抖音内部日志id,可提供给抖音方便排查问题
      event:life_takeout_order_pay_success
      content内容
    基础信息
    字段
    类型
    说明
    备注
    最后改动时间
    order
    object
    订单基础信息
    .order_id
    string
    抖音订单号
    .shop_number
    string
    流水号
    .is_book
    int
    是否预订单,1表示即时单、2表示预订单
    用户在抖音下单时候选择即时单/预订单
    .is_self_deliver
    int
    是否商家自配送,0表示不是自配送、1表示自配送
    is_self_deliver = deliver_mode==1
    .sys_expect_time
    string
    预计送达时间/用户期望送达时间(根据是否预订单),格式:起始时间戳(单位秒)- 截止时间戳(单位秒),示例:1669370006-1669371206
    需要在订单卡片或小票上展示
      推荐:完整区间(例如15:01~15:21送达)
      区间最大值(例如15:21前送达)
      不可仅展示区间最小值(例如15:01前送达)
    .remark
    string
    用户备注
    [贺卡](鲜花品类)/[祝福语](蛋糕品类)+用户填写的祝福内容+[其他备注]+用户填写的备注信息
    两者均有可能下发,可使用方括号内文本进行结构化分隔和提取
    仅下发用户填写的备注信息时,不会下发“[其他备注]”文案
    2023/05/18
    .create_time
    int64
    下单时间戳,单位秒
    .pay_time
    int64
    支付时间戳,单位秒
    先囤后送单:取约配送的二次支付时间,不是买券的一次支付时间
    即时单:订单和配送费在同一时间支付
    .deliver_mode
    int32
    配送方式,1-自配送; 7-平台配送
    .table_ware
    string
    餐具信息
    .is_deliver_later
    bool
    是否先囤后送单 true:是 false: 不是
    先囤后送单部分业务规则
      1.下单消息会在用户约配送的时机推送,此时门店和配送地址才会确认
      2.如果用户在约配前取消了订单,则
      a.下单消息不会推送;
      b.来客订单管理中不会展示,不会出现两边订单数不一致的情况;
      c.如需分析此类场景,可通过售卖明细下载并筛选出此类订单
    .sku_type_num
    int32
    原始订单的整单商品种类数(原始订单含义见products字段)
    .sku_num
    int32
    原始订单的整单商品件数(原始订单含义见products字段)
    poi
    object
    门店信息
    .poi_id
    string
    门店id
    .poi_name
    string
    门店名称
    merchant
    object
    商家信息
    .account_id
    string
    商家id
    一个商家可以有多个门店。例如肯德基是一个商家,在不同城市有很多的门店
    .account_name
    string
    商家名称
    buyer_info
    object
    下单人信息(仅鲜花、蛋糕品类)
    .buyer_phone
    string
    下单人手机号(脱敏处理)
    .buyer_secret_number
    string
    下单人虚拟号,格式为“11位手机号_分机号”,如18400872586_9580
    即时单,订单完成后7.5小时内有效
    预约单,用户下单后7天内有效
    .buyer_real_phone
    string
    下单人真实手机号
    11位手机号,仅当用户在下单时取消“号码保护”时下发
    receiver_info
    字段
    类型
    说明
    备注
    示例
    receiver_info
    object
    收货人信息
    抖音侧:
    消息下发:
    .receiver_name
    string
    收货人姓名(脱敏处理)
    .receiver_phone
    string
    收货人手机号(脱敏处理)
    .secret_number
    string
    虚拟号,格式为“11位手机号_分机号”,如18400872586_9580
    即时单,订单完成后7.5小时内有效
    预约单,用户下单后7天内有效
    .receive_real_phone
    string
    收货人真实手机号
    11位手机号,仅当用户在下单时取消“号码保护”时下发
    .province
    string
    收货省份
    抖音用户侧显示的地址,可参考使用:
    city+district+town+location_name+door_plate_num
    平台配送:下发脱敏详细地址;
    自配送:下发非脱敏详细地址,以及地址经纬度、坐标系;
    .city
    string
    收货城市
    .district
    string
    收货区
    .town
    string
    收货乡镇
    此字段会下发空值,不影响实际配送。后续有可能会酌情排期下发
    .location_address
    string
    详细地址,商家自配送单会展示,其他情况脱敏处理
    .location_name
    string
    详细地址后半部分
    .door_plate_num
    string
    门牌号
    .lat
    float
    收货地址纬度,商家自配送单会传,其他情况不传
    GCJ02坐标系
    .lng
    float
    收货地址经度,商家自配送单会传,其他情况不传
    GCJ02坐标系
    amount(历史遗留的订单信息,不建议使用)
    字段
    类型
    说明
    amount
    object
    订单金额,不再使用
    .pay_amount
    int
    实付金额,单位分
    .origin_amount
    int
    原价,单位分
    .merchant_discount_amount
    int
    商户优惠金额,单位分
    .platform_discount_amount
    int
    平台优惠金额,单位分
    .product_origin_amount
    int
    商品原金额,单位分,商品划线价
    .pay_discount_amount
    int
    支付优惠金额,单位分
    .origin_deliver_fee
    int
    原价配送费,单位分
    .pay_deliver_fee
    int
    实付配送费,单位分
    amount_info(新的订单信息,结构更清晰)
    字段
    类型
    说明
    备注
    amount_info
    object
    新金额信息
    amount_info中的各字段,主要表达的是订单中各类金额的总和
    订单相关信息(与C端订单展示可对应)
    .origin_amount
    int32
    订单原始金额,单位分
    未计入任何折扣/补贴/优惠的订单金额
      订单原始金额解读
    视角1
    origin_amount=用户实付金额pay_amount+订单折扣金额discount_amount
    视角2
    origin_amount=订单内商品售卖金额sale_price+配送费原价
    配送费原价指的是未计入任何配送费优惠金额的配送费,即
      1.自配送模式下,商家设置的用户需要支付的配送费,消息体中会下发
      2.平台配送模式下,平台计算出的用户需要支付的配送费,消息体中不会下发
    视角3
    origin_amount=各子单原始金额总和(后续计划逐步废弃掉)
      完整订单金额字段解读(抖音APP上的C端订单页面)
      1.订单原始金额(31元)=商品售卖金额(10元)+配送费原价(21元)
      2.用户实付订单金额=30.81元
      3.订单内全部商品的售卖金额=10元
      4.订单内全部商品的划线金额=16元
      5.折扣金额=各类折扣金额总和=0.19元
      1.订单原始金额(80.2元)=商品售卖金额(77元)+配送费原价(3.2元)
      2.订单实付金额=77元
      3.订单内全部商品的售卖金额=77元
      4.订单内全部商品的划线金额=116元
      5.折扣金额=各类折扣金额总和=3.2元
    .pay_amount
    int32
    用户实付金额,单位分
    用户实际支付了的包含了货款、配送费、以及各类折扣/补贴/优惠之后的最终金额
    .sale_price
    int32
    订单内商品售卖金额,单位分
      订单内全部商品的售卖价总和(7月下旬支持一笔订单多件商品),等于products中各件商品售卖价的总和,未计入任何折扣/补贴/优惠金额
      一笔订单多件商品且发生部分退时,会以用户约配送时机为准,将留下的未被申请部分退的全部商品的售卖价加总
      多规格商品订单时,会体现用户选中某个规格后的加价结果
    .product_origin_amount
    int64
    订单内商品划线金额,单位分
      订单内全部商品的划线价总和(7月下旬支持一笔订单多件商品),等于products中各件商品划线价的总和
      一笔订单多件商品且发生部分退时,会以用户约配送时机为准,将留下的未被申请部分退的全部商品的划线价加总
      多规格商品订单时,会体现用户选中某个规格后的加价结果
    .discount_amount
    int32
    订单折扣金额,单位分
    包含商品、配送费、支付优惠等下列折扣列表中全部折扣的总和
    .discounts
    list
    折扣列表
    ..discount_type
    int32
    折扣类型
    1. 优惠券(例如,满减券等)
    2. 活动(例如,秒杀、商品立减等)
    3. 支付优惠
    ..discount_amount
    int32
    该类型折扣金额
    ..merchant_discount_amount
    int32
    商家承担的该类型折扣金额
    ..platform_discount_amount
    int32
    平台承担的该类型折扣金额
    商家预计收入相关信息
    .estimated_order_income
    int32
    预计收入,单位分
    用户下单(约配送)时预估计算得到的商家预计收入,有可能会跟着履约过程发生调整
    统一公式(覆盖所有配送模式)
    预计收入=商品售卖金额(收入)+ 用户需要支付的配送费(收入,自配) - 商家活动补贴(支出) - 佣金(支出) - 平台配送服务费(支出)-自配送服务费(支出)
    .activities_fee_amount
    int32
    商家活动补贴,单位分(商品、配送费等各项补贴的总和)
    商家承担的总活动支出,计算预计收入的过程值
    .commission_amount
    int32
    佣金,单位分
    佣金=平台佣金(即软件服务费)、达人佣金(包含纯达人佣金、达人机构佣金、撮合经纪服务商(即团长服务费)、服务商佣金等各项佣金的总和
    商家承担的总佣金支出,计算预计收入的过程值
    .platform_deliver_freight_fee
    int32
    平台配送服务费,单位分(仅平台配送)
    商家需要支付给平台的配送费,计算预计收入的过程值
    .merchant_deliver_freight_fee
    int32
    自配送服务费,单位分(仅自配送)
    商家需要支付给平台的提现手续费等,计算预计收入的过程值
    .freight_pay_amount
    int32
    用户需要支付的配送费,单位分(仅自配送)
    商家设置的向用户收取的配送费,未扣除配送费优惠,计算预计收入的过程值
    sub_order_amount_infos
    list
    子单金额信息
    子单相关信息
    .sub_order_type
    int32
    子单类型 100:商品 1:配送费 2:打包费 3:服务费(2、3暂时没有)
    sub_order_amount_infos为amount_info更细粒度的值sum(sub_order_amount_infos) = amount_info
    子单结构是历史遗留的概念 ,不建议使用,未来会适时考虑废弃掉
    .sub_order_id
    string
    子单id,类型为100时为item_id, 234为order_fee_id
    .origin_amount
    int32
    原始金额,单位分
    .pay_amount
    int32
    实付金额,单位分
    .discount_amount
    int32
    折扣金额,单位分
    .discounts
    list
    折扣列表
    ..discount_type
    int32
    折扣类型
    ..discount_amount
    int32
    金额
    ..merchant_discount_amount
    int32
    商家优惠
    ..platform_discount_amount
    int32
    平台优惠
    amount_info_after_refund
    object
    部分退后留下的需履约订单的金额信息
    约配送时剩余商品对应收入,与products_after_refund对应
    没有发生约配送前部分退情况下为null
    .sale_price
    int32
    商品售卖金额,单位分
    .estimated_order_income
    int32
    预计收入,单位分
    .activities_fee_amount
    int32
    商家活动补贴,单位分
    .commission_amount
    int32
    佣金,单位分
    .platform_deliver_freight_fee
    int32
    平台配送服务费,单位分(仅平台配送)
    .merchant_deliver_freight_fee
    int32
    自配送服务费,单位分(仅商家自配送)
    .freight_pay_amount
    int32
    用户需要支付的配送费,单位分(仅自配送)
    订单内商品信息
    字段
    类型
    说明
    备注
    最后改动时间
    products
    list<object>
    原始订单的商品信息(用户最初原始订单中的商品)
      1.先囤后送单,用户可能在购买之后,约配送之前,申请退掉部分商品。下单消息是在用户约配送的时机才推送,此结构包含的是购买之后订单中的商品信息。
      2.即时单或预约单,不存在上述概念差异。
    .product_id
    string
    商品id
    .sku_id
    string
    skuid
    .out_id
    string
    外部商品id
    .origin_amount
    int64
    商品售卖价
    商家整体设置的套餐商品价格
    多规格商品订单时,会体现用户选中某个规格后的加价结果
    如果购买了多份商品,会体现多份之和
    .product_origin_amount
    int64
    商品划线价
    商家在菜品搭配中设置的各菜品priceX菜品数量的总和
    多规格商品订单时,会体现用户选中某个规格后的加价结果
    如果购买了多份商品,会体现多份之和
    .product_name
    string
    商品名称
    .num
    int
    商品份数
    早期:仅允许一笔订单购买1种1份1件套餐商品;
    23.8:新增的购物车能力,允许通过购物车一笔订单购买多件或多份套餐商品,最多不超过3件
    23.9:允许一笔订单购买1种多份套餐商品,份数不超过2
    .commodities
    list<object>
    菜品搭配
    ..group_name
    string
    菜品类型
    ..total_count
    int
    此类型菜品总数(多规格组合商品时,该字段会下发-1,无业务含义)
    ..option_count
    int
    此类型可选菜品总数(多规格组合商品时,该字段会下发-1,无业务含义)
    ..items
    list<object>
    详细菜品列表
    ...name
    string
    详细菜品名称
    ...count
    int
    数量
    ...unit
    string
    单位
    ...price
    int
    价格,单位分
    price代表1份菜品的单价
    ...product_id
    string
    抖音单品ID
    ...out_id
    string
    外部单品ID
    ...sku_id
    string
    抖音商品ID
    无规格单品为-1
    ...out_sku_id
    string
    外部商品ID
    无规格单品为-1
    ...sku_attr_list
    list<object>
    规格属性(仅多规格商品订单,体现用户选中的规格信息)
    ....attr_name
    string
    规格属性名
    ....num
    int
    规格属性数量
    ....product_id
    string
    抖音加料ID
    ....out_id
    string
    外部加料ID
    products_after_refund
    list<object>
    部分退后留下的商品信息(约配送时订单中的商品)
      1.先囤后送单,平台推送下单消息之前可能已经发生了部分退,此结构包含的是部分退之后订单中留下的需配送的商品。非必传,如果没发生部分退,则此结构不会下发,products中的原始订单商品即等于留下的需配送的商品
      2.即时单或预订单,推送下单消息时不涉及到此概念
    没有发生约配送前部分退情况下为null
    .product_id
    string
    商品id
    .sku_id
    string
    skuid
    .out_id
    string
    外部商品id
    .origin_amount
    int64
    商品售卖价
    商家整体设置的套餐商品价格
    多规格商品订单时,会体现用户选中某个规格后的加价结果
    如果购买了多份商品,会提现多份之和
    .product_origin_amount
    int64
    商品划线价
    商家在菜品搭配中设置的各菜品price的总和
    多规格商品订单时,会体现用户选中某个规格后的加价结果
    如果购买了多份商品,会提现多份之和
    .product_name
    string
    商品名称
    .num
    int
    商品份数
    .commodities
    list<object>
    菜品搭配
    ..group_name
    string
    菜品类型
    ..total_count
    int
    此类型菜品总数
    ..option_count
    int
    此类型可选菜品总数
    ..items
    list<object>
    详细菜品列表
    ...name
    string
    详细菜品名称
    ...count
    int
    数量
    ...unit
    string
    单位
    ...price
    int
    价格,单位分
    ...product_id
    string
    抖音单品ID
    ...out_id
    string
    外部单品ID
    ...sku_id
    string
    抖音份量ID
    无规格单品为-1
    ...out_sku_id
    string
    外部份量ID
    无规格单品为-1
    ...sku_attr_list
    list<object>
    规格属性
    ...original_sku_id
    string
    规格升级前抖音商品ID
    ...original_out_sku_id
    string
    规格升级前外部商品ID
    ...original_price
    int
    规格升级前价格
    ....attr_name
    string
    规格属性名
    ....num
    int
    规格属性数量
    ....product_id
    string
    抖音加料ID
    ....out_id
    string
    外部加料ID
    ....upgrade_price
    int
    加料价格
    约配送前退款信息
    refund_infos
    list<struct>
    退款信息(约配送前发生)没有发生约配送前部分退情况下为null
    .after_sale_id
    string
    售后单id
    .refund_complete_time
    int64
    退款完成时间
    .user_refund_amount
    int64
    退款金额
    .products_refund
    struct
    商品信息(本次部分退)
    ..product_id
    string
    商品id
    ..product_name
    string
    商品名称
    .origin_amount
    int64
    商品售卖价
    商家整体设置的套餐商品价格
    多规格商品订单时,会体现用户选中某个规格后的加价结果
    如果购买了多份商品,会提现多份之和
    .product_origin_amount
    int64
    商品划线价
    商家在菜品搭配中设置的各菜品price的总和
    多规格商品订单时,会体现用户选中某个规格后的加价结果
    如果购买了多份商品,会提现多份之和
    ..sku_id
    string
    skuid
    ..num
    int
    商品份数
    ..commodities
    list
    菜品信息
    ...group_name
    string
    商品组名
    ...total_count
    int32
    总数
    ...option_count
    int32
    选几
    ...items
    list
    菜品信息
    ....name
    string
    菜名
    ....price
    int64
    价格
    ....count
    int64
    总数
    ....unit
    string
    单位
    ....desc
    string
    描述
    ....item_tag
    string
    标签
    ....attr_list
    list
    属性列表
    ....sku_attr_list
    list<object>
    规格属性
    .....attr_name
    string
    规格属性名
    .....num
    int
    规格属性数量

    请求示例

    { "MsgId": "eac74157eccddb4a6860df8d25ba62d5", "Message": { "Event": "life_takeout_order_pay_success", "ClientKey": "awmxi5eirnxpvwli", "Content": "{\"order\":{\"order_id\":\"1000001703409282301\",\"shop_number\":\"65\",\"is_book\":1,\"sys_expect_time\":\"1688482522-1688483722\",\"remark\":\"\",\"create_time\":1688473588,\"pay_time\":1688479523,\"is_self_deliver\":1,\"deliver_mode\":1,\"table_ware\":\"无需餐具\",\"is_deliver_later\":true,\"is_multi_order\":false,\"sku_type_num\":1,\"sku_num\":2},\"merchant\":{\"account_id\":\"7109411084762613804\",\"account_name\":\"深圳汇艺谷网络科技有限公司\"},\"receiver_info\":{\"receiver_name\":\"马*跳先生\",\"receiver_phone\":\"178****3009\",\"secret_number\":\"18400740824_9949\",\"receive_real_phone\":\"\",\"province\":\"北京市\",\"city\":\"北京市\",\"district\":\"东城区\",\"town\":\"\",\"location_address\":\"北京火车站内2楼\",\"lat\":39.903906,\"lng\":116.42801,\"location_name\":\"麦当劳(北京站)\",\"door_plate_num\":\"\"},\"buyer_info\":{\"buyer_phone\":\"\",\"buyer_secret_number\":\"\",\"buyer_real_phone\":\"\"},\"amount\":{\"pay_amount\":600,\"origin_amount\":600,\"merchant_discount_amount\":0,\"platform_discount_amount\":0,\"product_origin_amount\":300,\"pay_discount_amount\":0,\"origin_deliver_fee\":200,\"pay_deliver_fee\":200},\"poi\":{\"poi_id\":\"6601126658655127565\",\"poi_name\":\"大食代(东方新天地店)\"},\"products\":[{\"product_id\":\"1768659392721949\",\"sku_id\":\"1768659392721949\",\"product_name\":\"美食-北京菜-单品-限购2\",\"num\":2,\"commodities\":[{\"group_name\":\"荤菜\",\"total_count\":1,\"option_count\":1,\"items\":[{\"name\":\"3\",\"count\":1,\"unit\":\"份\",\"price\":300}]}],\"ext_sku_id\":\"\",\"product_origin_amount\":600,\"origin_amount\":400}],\"amount_info\":{\"origin_amount\":600,\"pay_amount\":600,\"discount_amount\":0,\"sale_price\":400,\"estimated_order_income\":589,\"activities_fee_amount\":0,\"commission_amount\":10,\"platform_deliver_freight_fee\":0,\"merchant_deliver_freight_fee\":1,\"freight_pay_amount\":200,\"discounts\":null},\"sub_order_amount_infos\":[{\"origin_amount\":400,\"pay_amount\":400,\"discount_amount\":0,\"sale_price\":0,\"estimated_order_income\":0,\"activities_fee_amount\":0,\"commission_amount\":0,\"platform_deliver_freight_fee\":0,\"merchant_deliver_freight_fee\":0,\"freight_pay_amount\":0,\"discounts\":[{\"discount_type\":0,\"discount_amount\":0,\"merchant_discount_amount\":0,\"platform_discount_amount\":0}],\"sub_order_type\":100,\"sub_order_id\":\"800000000429829145613182301\"},{\"origin_amount\":200,\"pay_amount\":200,\"discount_amount\":0,\"sale_price\":0,\"estimated_order_income\":0,\"activities_fee_amount\":0,\"commission_amount\":0,\"platform_deliver_freight_fee\":0,\"merchant_deliver_freight_fee\":0,\"freight_pay_amount\":0,\"discounts\":null,\"sub_order_type\":1,\"sub_order_id\":\"800000000429878784015522301\"}],\"products_after_refund\":[{\"product_id\":\"1768659392721949\",\"sku_id\":\"1768659392721949\",\"product_name\":\"美食-北京菜-单品-限购2\",\"num\":1,\"commodities\":[{\"group_name\":\"荤菜\",\"total_count\":1,\"option_count\":1,\"items\":[{\"name\":\"3\",\"count\":1,\"unit\":\"份\",\"price\":300}]}],\"ext_sku_id\":\"\",\"product_origin_amount\":300,\"origin_amount\":200}],\"amount_info_after_refund\":{\"sale_price\":200,\"estimated_order_income\":394,\"activities_fee_amount\":0,\"commission_amount\":5,\"platform_deliver_freight_fee\":0,\"merchant_deliver_freight_fee\":1,\"freight_pay_amount\":200}}" }