机票订单查询

  • 接口(建议后缀):/order/flight/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<FlightOrder> Y 订单详情列表
hasNextPage bool N 是否有下一页

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

FlightOrder

字段 类型 必填 描述
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 付款方式
totalFee BigDecimal Y 订单总金额=企业支付(corpPayFee) + 个人支付(personalPayFee)
corpPayFee BigDecimal Y 订单企业支付部分金额
personalPayFee BigDecimal Y 订单个人支付部分金额
changeFee BigDecimal N 改签费,仅改签明细需要有值,=改签差价(changeDiffFee)+ 改签手续费(changeCommisionFee)
changeDiffFee BigDecimal N 改签差价,仅改签明细需要有值
changeCommisionFee BigDecimal N 改签手续费,仅改签明细需要有值(航司收取)
changeServiceFee BigDecimal N 仅改签明细有值的改签服务费(TMC收取)
refundFee BigDecimal N 退票费,仅退票明细有值(航司收取)
refundServiceFee BigDecimal N 仅退票明细有值的退票服务费(TMC收取)
serviceFee BigDecimal N 仅预订有值的预订服务费(TMC收取)
extraServiceFee BigDecimal N 额外服务费(TMC收取)
deliveryFee BigDecimal N 快递费
insuranceFee BigDecimal N 保险费
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 授权人在第三方中的唯一标识
settlementBatchNo String N 结算批次号
ticketList List<FlightTicket> Y 预订机票列表
useStatus OrderUseStatus N (要传该字段请和每刻确认)订单使用状态

[info] 说明:
[4] 机票发生改签与退票操作才会关联原操作号,详细信息请阅读订单同步首页的描述。

订单状态

code 定义
O 预订单(首次购票的订单)
C 改签单(首次改签/N次改签)
R 退票单

付款方式

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

FlightTicket

字段 类型 必填 描述
ticketNo String N 机票号
originalTicketNo String [5] 原票号
flightNo String N 航班号
airlineName String N 航空公司名称
airlineCode String N 航空公司编码
aircraftType String N 机型
departureTime String N 出发时间(yyyy-MM-dd HH:mm:ss) [6]
departureTimeZone String N 出发时间时区([+/-]hhmm)
arrivalTime String N 降落时间(yyyy-MM-dd HH:mm:ss) [6]
arrivalTimeZone String N 降落时间时区([+/-]hhmm)
flyDuration String N 飞行时间(分钟)
departureCity City Y 出发城市
arrivalCity City Y 到达城市
departurePort String N 出发机场
arrivalPort String N 降落机场
departurePortCode String N 出发机场三字码
arrivalPortCode String N 降落机场三字码
cabin String N 舱位
ticketPrice BigDecimal N 实际支付票价,改签明细值=改签差价(changeDiffFee),退票明细值=(预订支付票价+改签差价)的负值
standardTicketPrice BigDecimal N 票本价
discount int N 百分比折扣(范围0-100的整数,比如75%,此字段值为75)
tmcServiceFee BigDecimal N TMC 服务费
airlineServiceFee BigDecimal N 航司服务费
insuranceFee BigDecimal N 保险费
oilFee BigDecimal N 燃油附加费,改签明细值=0,改签明细值=改签然后差价,不变传 0,退票明细值=原支付的燃油费的负值
taxFee BigDecimal N 机建费,改签明细改签=0,退票明细值=原支付的机建费的负值
currency String N 货币类型
internationalFlight bool N 是否国际航班
printNo String N 行程单号
client Client Y 乘机人

[info] 说明:
[5] 当该机票所属订单为改签或退票订单,则该机票中需要填写原票号,表示被改签或被退票的原票号。
[6] 默认时间为本地时间。

舱位枚举

code 定义
S 超级经济舱
Y 经济舱
C 商务舱
F 头等舱

Client

字段 类型 必填 描述
externalEmployeeCode String [7] 乘机人唯一标识
name String Y 姓名

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


数据示例

以下示例为仅企业支付:

  • 原票:全价 2000,票价 1000,折扣 50%,TMC服务费 30,基建 50,保险 20
  • 第一次改签:只做改期,未升舱,航司手续费 200,保险退保 20
  • 第二次改签:改签并且升舱,票全价 2000,票价 1500,折扣 75%,航司手续费 300,航司升舱费 500,重新购买保险 50
  • 退票:退票手续费 500,两次航司改签的手续费共 500 是不退的,TMC服务费 30 是不退的,即收取 1030,退原票 500,退基建 50,退第二次改签的航司升舱费 500,退第二次重新购买的保险 50
类型 原票 第一次改签 第二次改签 退票
FlightOrder 订单总金额 totalFee 1100 180 850 -1100
订单企业支付金额 corpPayFee 1100 180 850 -1100
改签费 changeFee 0 200 800 0
改签差价 changeDiffFee 0 0 500 0
改签手续费 changeCommisionFee 0 200 300 0
改签服务费 changeServiceFee 0 0 0 0
退票费 refundFee 0 0 0 500
退票服务费 refundServiceFee 0 0 0 0
服务费 serviceFee 30 0 0 0
保险费 insuranceFee 20 -20 50 -50
FlightTicket 实际支付票价 ticketPrice 1000 0 500 -1500
票本价 standardTicketPrice 2000 2000 2000 2000
百分比折扣 discount 50 50 75 75
TMC 服务费 tmcServiceFee 30 0 0 0
航司服务费 airlineServiceFee 0 0 0 0
保险费 insuranceFee 20 -20 50 -50
燃油附加费 oilFee 0 0 0 0
基建费 taxFee 50 0 0 -50

[warning] 重要:
所有金额字段如果表示的是需要客户(企业或者个人)付给第三方的,就是正值,反之,如果是第三方退回给客户的,则是负值。


示例

[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 13:41:23",
      "operationAt": "2024-06-19 13:41:24",
      "payType": "CORP_ACCOUNT_PAY",
      "totalFee": 1353.0,
      "corpPayFee": 1353.0,
      "personalPayFee": 0.0,
      "changeFee": 0.0,
      "changeDiffFee": 0.0,
      "changeCommisionFee": 0.0,
      "changeServiceFee": 0.0,
      "refundFee": 0.0,
      "refundServiceFee": 0.0,
      "serviceFee": 13.0,
      "extraServiceFee": 0.0,
      "deliveryFee": 0.0,
      "insuranceFee": 0.0,
      "taxFee": 100.0,
      "deductibleTaxFee": 0.0,
      "nonDeductibleTaxFee": 0.0,
      "currency": "CNY",
      "incompatibleReason": null,
      "remark": "",
      "approver": null,
      "approver2": null,
      "settlementBatchNo": null,
      "ticketList": [
        {
          "ticketNo": "8918812xxx",
          "originalTicketNo": "",
          "flightNo": "GJ8871",
          "airlineName": "长龙航空",
          "airlineCode": "GJ",
          "aircraftType": "空客 320 (中型)",
          "departureTime": "2024-06-22 08:50:00",
          "departureTimeZone": "+8:00",
          "arrivalTime": "2024-06-22 14:50:00",
          "arrivalTimeZone": "+8:00",
          "flyDuration": "360",
          "departureCity": {
            "code": "CT530100",
            "name": "昆明",
            "adminDivCode": null
          },
          "arrivalCity": {
            "code": "CT220100",
            "name": "长春",
            "adminDivCode": null
          },
          "departurePort": "长水国际机场",
          "arrivalPort": "龙嘉国际机场",
          "departurePortCode": "KMG",
          "arrivalPortCode": "CGQ",
          "cabin": "Y",
          "ticketPrice": 1240.0,
          "discount": 35,
          "tmcServiceFee": 13.0,
          "airlineServiceFee": 0.0,
          "insuranceFee": 0.0,
          "oilFee": 50.0,
          "taxFee": 50.0,
          "currency": "CNY",
          "internationalFlight": false,
          "printNo": null,
          "client": {
            "externalEmployeeCode": "48edc82xxx",
            "name": "xxx"
          }
        }
      ],
      "paidAt": "2024-06-19 13:41:23"
    }
  ],
  "hasNextPage": false
}

results matching ""

    No results matching ""