酒店订单查询

  • 接口(建议后缀):/order/hotel/queryOrder
  • Method:POST
  • 数据格式:Json
  • 调用方:每刻
  • 接口说明:每刻将通过该接口,获取特定范围的酒店订单数据

[warning] 对接前先看:
目前常见的参数组合(以下例子不包括必填参数)示例

  1. 每日凌晨定时任务:startDate + endDate 拉取该时间范围内对应 externalCorpCode 企业的订单;
  2. 申请单申请人触发:externalApprovalNo 拉取指定申请单下预定的订单;
  3. 管理员或者预定人触发丢失订单的补充拉取:externalEmployeeCode + startDate + endDate 拉取指定员工;
  4. 第三方对接了第三方订单通知实时推送接口:orderId + operationId 直接拉取对应订单;

当订单进入每刻后,很快就会生成费用,甚至费用可能已经报销,原则上是不允许第三方订单进行修改(尤其是金额),如果这笔订单传的金额不正确,或者人为因素导致订单金额多了或者少了,可以采取 orderId 保持原单不变,生成一笔新的 operationId 订单,金额为该笔订单多了或少了的金额。

请求参数

字段 类型 必填 描述
externalCorpCode String Y 企业在第三方的唯一标识
externalEmployeeCode String [1] 下单人在第三方的唯一编码
externalApprovalNo String [1] 申请单在第三方唯一编码
orderId String [1] 订单号
operationId String [1] 操作号
startDate String [2] 开始日期(yyyy-MM-dd)[3]
endDate String [2] 结束日期(yyyy-MM-dd)[3]
dateType String N 参考时间(不传时等同 OPERATION)
onlyApprovingOrder bool N 限定只拉取审批中的订单(默认不传,不传按 false 处理)
pageNo int Y 第几页(从第1页开始)
pageSize int Y 每页容量(最大为 100)

[info] 说明:
[1] 非必填参数,至少填写一个,可以填写多个,如果填写了多个,条件是叠加的,比如四个个字段都有值,externalCorpCode 企业、externalEmployeeCode 员工、approval 申请单和 orderId 订单对应的订单信息。
[2] 没有开始与结束日期,默认结束日期为请求日期;只有开始时间,表示从开始日期到调用日期的订单;只有结束日期,开始日期为结束日期的前一个月。
[3] 默认开始时间为00:00,默认结束时间为23:59。

参考时间

code 定义
ORDER 订单时间(暂不支持)
OPERATION 操作时间

响应结构

字段 类型 必填 描述
success bool Y 请求是否成功
errorMessage String N 失败信息(当 success 为 false 时,失败信息为必填)
data List<HotelOrder> Y 订单详情列表
hasNextPage bool N 是否有下一页

[warning] 关于请求分页如何结束:
hasNextPage = false 标志着分页结束,success 仅表示请求是否成功。

HotelOrder

字段 类型 必填 描述
orderId String Y 订单在第三方的唯一编码
operationId String Y 操作在第三方的唯一编码
originalOperationId String [4] 关联原操作号
originalAppCode String N 实际供应商(TMC),已废弃
originalAppName String N 实际供应商名称,已废弃
sourceAppCode String N 实际供应商(TMC)原 originalAppCode 废弃,保留接收,但新对接 TMC 使用该字段
sourceOrderId String N 实际供应商订单号
externalCorpCode String Y 企业在第三方的唯一编码
externalEmployeeCode String Y 预订人在第三方的唯一编码
externalEmployeeName String N 预订人在第三方的姓名
externalDepName String N 预订人在第三方部门名称
externalApprovalNo String N 申请单在第三方的唯一编码
status String Y 订单状态
onBusiness bool N 是否因公
isOnline bool N 是否在线预订
orderAt String Y 预订时间(yyyy-MM-dd HH:mm:ss)
operationAt String N 订单状态改变时间(yyyy-MM-dd HH:mm:ss)
paidAt String Y 支付时间(yyyy-MM-dd HH:mm:ss)
payType String Y 付款方式
prepaid bool Y 是否预付
totalFee BigDecimal Y 订单总金额==企业支付(corpPayFee) + 个人支付(personalPayFee)
corpPayFee BigDecimal Y 订单企业支付部分金额
personalPayFee BigDecimal Y 订单个人支付部分金额
refundFee BigDecimal N 退订费, 酒店方收的退票手续费
refundServiceFee BigDecimal N 退订服务费, TMC收的退票服务费
serviceFee BigDecimal N 服务费,TMC收的预订服务费
extraServiceFee BigDecimal N 额外服务费(酒店本身只能开普票,对于 TMC 补充开专票额外收取的金额)
taxFee BigDecimal N 税费,已废弃
deductibleTaxFee BigDecimal N 可抵扣税,已废弃
nonDeductibleTaxFee BigDecimal N 非可抵扣税,已废弃
platformAgencyFee BigDecimal N 平台服务费(平台收取的服务费,区别于实际供应商服务费)
currency String Y 货币类型(人民币为 CNY)
incompatibleReason String N 不符合申请单的原因
remark String N 订单备注
approver String N 授权人在第三方中的唯一标识
approver2 String N 授权人在第三方中的唯一标识
hotelInfo HotelInfo Y 酒店信息
room Room Y 预订房间
hotelMeal HotelMeal N 餐食类型
roomDayCount Integer N 间*夜(正值)
roomQuantity Integer N 间数(正值)
roomFeeInvoiceType String N 酒店房价发票类型 InvoiceType
clientList List<Client> Y 入住人列表
settlementBatchNo String N 结算批次号
useStatus OrderUseStatus N (要传该字段请和每刻确认)订单使用状态

[info] 说明:
[4] 酒店取消预订的订单才会关联原操作号,详细信息请阅读订单同步首页的描述。

订单状态

code 定义
O 预订单
R 取消单

付款方式

code 定义
PERSONAL_PAY 个人支付
CORP_ACCOUNT_PAY 公司支付
MIX_PAY 混合支付

是否预付

value 定义
true 预付给 TMC
false 线下支付给酒店方

HotelInfo

字段 类型 必填 描述
hotelName String [5] 酒店中文名
hotelNameEn String [5] 酒店英文名
hotelTel String N 酒店联系方式
hotelAddress String N 酒店地址
hotelCity City Y 酒店城市
starRating int N 酒店星级
internationalHotel bool N 是否国际酒店

[info] 说明:
[5] 酒店中文名与英文名至少传一个。

酒店星级

code 定义
1 经济型
2 连锁经济
3 三星
4 四星
5 五星

Room

字段 类型 必填 描述
roomName String Y 房间名称
roomNameEn String N 房间英文名
roomPrice List<RoomPrice> Y 房型价格
roomTotalFee BigDecimal Y 订房总花费
currency String Y 货币类型
checkInDate String Y 入住时间(yyyy-MM-dd)
checkOutDate String Y 离店时间(yyyy-MM-dd)

RoomPrice

字段 类型 必填 描述
effectiveDate String Y 生效日期(yyyy-MM-dd)
invalidDate String Y 失效日期 (yyyy-MM-dd)
price BigDecimal Y 房间单价

HotelMeal

code 定义
WITH_BREAKFAST 包含早餐
WITHOUT_BREAKFAST 不含早餐

Client

字段 类型 必填 描述
externalEmployeeCode String [6] 员工唯一标识
name String Y 姓名
identityType String N 住店人证件类型
identityCode String N 住店人证件号

[info] 说明:
[6] 住店人可能不是企业员工,如果填写了该字段,表示为企业员工,如果只有姓名,表示外部同行人。


数据示例

以下示例为混合支付:

  • 原订单:每间夜 500,预订了两天,TMC服务费 30,其中企业支付了 630(服务费企业支付),因为超标自付,个人支付了 400
  • 退订:房间退掉,酒店服务费、TMC服务费不退
  • 扣费退订:房间退掉,扣除 10% 费用,即 100,其中企业退了 550,个人退了 350(假设扣费平分,实际根据 TMC 业务来定),TMC服务费不退
  • 提前离店:入住了一天,退 1 间*夜,酒店收取未入住的 1 间*夜 20% 罚金,即 100,总退款 400,其中企业退了 250,个人退了 150(假设扣费平分),TMC 服务费不退
类型 原订单 退订(原价) 退订(扣费) 提前离店
HotelOrder 订单总金额 totalFee 1030 -1000 -900 -400
企业支付金额 corpPayFee 630 -600 -550 -250
个人支付金额 personalPayFee 400 -400 -350 -150
退订费 refundFee 0 0 100 100
退订服务费 refundServiceFee 0 0 0 0
服务费 serviceFee 30 0 0 0
额外服务费 extraServiceFee 0 0 0 0
间*夜 roomDayCount 2 2 2 2
间数 roomQuantity 1 1 1 1
Room 订房总花费 roomTotalFee 1000 -1000 -1000 -1000
房间单价(简化) roomPrice 500 500 500 500

示例

[warning] 重要:
示例维护并非和文档字段维护一样频繁,如果遇到示例和文档不一致,请以文档为准

请求头:

{
  "tokenId": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJtYXljdXJfand0X2Rldl9pZCIsInN1YiI6IlBGMjAwNjIwMTI1NU5GTk8iLCJpYXQiOjE2MDQ2MzA5NjYsImF1ZCI6IlBMQVRGT1JNIiwiZXhwIjoxNjA0NjM0NTY2LCJwcm9kdWN0TGluZSI6IkRBVEFfSFVCIn0.AyNIwPtGUXxFMuHO8Bx-4XeXNyWYRcot40MfsL1swr4"
}

请求示例:

1.每日凌晨定时任务

{
  "externalCorpCode": "0123456",
  "startDate": "2024-06-12",
  "endDate": "2024-06-19",
  "pageNo": 1,
  "pageSize": 50
}

2.申请单申请人触发

{
  "externalCorpCode": "0123456",
  "externalApprovalNo": "AE94527002203135xxx",
  "pageNo": 1,
  "pageSize": 50
}

3.管理员或者预定人触发丢失订单的补充拉取

{
  "externalCorpCode": "0123456",
  "externalEmployeeCode": "48edc82xxx",
  "startDate": "2024-06-12",
  "endDate": "2024-06-19",
  "pageNo": 1,
  "pageSize": 50
}

4.第三方对接了第三方订单通知实时推送接口

{
  "externalCorpCode": "021343",
  "orderId": "13406390267",
  "operationId": "13406390267",
  "pageNo": 1,
  "pageSize": 50
}

响应示例:

{
  "success": true,
  "errorMessage": null,
  "data": [
    {
      "orderId": "13406390267",
      "operationId": "13406390267",
      "originalOperationId": null,
      "externalCorpCode": "0123456",
      "externalEmployeeCode": "48edc82xxx",
      "externalEmployeeName": "xxx",
      "externalApprovalNo": "a00a7e3xxxx",
      "status": "O",
      "onBusiness": true,
      "isOnline": true,
      "orderAt": "2024-06-19 15:16:24",
      "operationAt": "2024-06-19 15:18:40",
      "payType": "CORP_ACCOUNT_PAY",
      "prepaid": true,
      "totalFee": 227.00,
      "corpPayFee": 227.00,
      "personalPayFee": 0.00,
      "refundFee": 0.0,
      "refundServiceFee": 0.0,
      "serviceFee": 4.00,
      "extraServiceFee": 0.0,
      "taxFee": 0.0,
      "deductibleTaxFee": 0.0,
      "nonDeductibleTaxFee": 0.0,
      "currency": "CNY",
      "incompatibleReason": "",
      "remark": "",
      "approver": null,
      "approver2": null,
      "hotelInfo": {
        "hotelName": "汉庭酒店(长春重庆路活力城店)",
        "hotelNameEn": "HantingHotel(ChongqingRoadHuolichengBranch)",
        "hotelTel": "8643181877677",
        "hotelAddress": "西四马路398号",
        "hotelCityCode": "CT220100",
        "hotelCityName": "长春",
        "starRating": 2
      },
      "room": {
        "roomName": "高级双床房",
        "roomNameEn": null,
        "roomPrice": [
          {
            "effectiveDate": "2024-06-19",
            "invalidDate": "2024-06-19",
            "price": 223.0
          }
        ],
        "roomTotalFee": 223.0000,
        "currency": "CNY",
        "checkInDate": "2024-06-19",
        "checkOutDate": "2024-06-20"
      },
      "clientList": [
        {
          "externalEmployeeCode": "48edc82xxx",
          "name": "xxx",
          "identityType": null,
          "identityCode": null
        }
      ],
      "paidAt": "2024-06-19 15:18:40"
    }
  ],
  "hasNextPage": false
}

results matching ""

    No results matching ""