Order
- 用途:用于生成AeroHub的供应商订单,生成订单意味着供应商应进行占舱,降低变价率。
- 请求方式:
POST - 接口加密:
是
请求参数
| 参数名称 |
类型 |
必填 |
说明 |
| requestId |
string |
✅ |
请求ID,预订环节中的各个接口是唯一的,可通过本字段串联一个完整的预订流程,长度32位 |
| orderNo |
string |
✅ |
AeroHub的订单号,长度20个字符,供应商需要保存,出票环节需要用这个字段做关联 |
| tripType |
int |
✅ |
行程类型:1 单程、2 往返 |
| sessionId |
string |
✅ |
会话标识,供应商在预定环节串联各个接口的唯一标识,由数字或字母组成,最大长度40字符 |
| routing |
object/routing Element |
✅ |
行程与报价信息,参考Verify接口中的object/routing Element |
| isResidentDiscountEligible |
bool |
⬜ |
true代表订单使用岛民折扣价格,默认false |
| passengers |
array/passenger Element |
✅ |
乘机人信息 |
| contact |
object/contact Element |
✅ |
联系人信息 |
| passengerBaggages |
array/passengerBaggages Element |
⬜️ |
辅营信息 |
| passengerSeats |
array/passengerSeats Element |
⬜️ |
辅营选座信息 |
| baggageSources |
string |
⬜️ |
空:供应商报价行李;FMKT:Faremarket行李库报价数据 |
| serviceTag |
object |
✅ |
本次指定的服务要求标签 ,包含出票速度、能否拆单出票、是否允许更换票号出票、开票是否使用平台邮箱 |
array/passenger Element
| 参数名称 |
类型 |
必填 |
说明 |
| passengerNo |
int |
✅ |
乘客的序号,从0开始 |
| name |
string |
✅ |
乘客姓名,姓和名之间用/隔开,LastName/FirstName MiddleName |
| ageType |
int |
✅ |
乘客类型,0 成人、1 儿童、2 婴儿 |
| birthday |
string |
✅ |
出生日期,格式:YYYYMMDD |
| gender |
string |
✅ |
乘客性别,M 男、F 女 |
| cardType |
string |
⬜️ |
证件类型: PP 护照、 GA 港澳通行证、TW 台湾通行证、TB 台胞证(台湾往返内地通行证)、HX 回乡证(港澳往返内地通行证)、HY 国际海员证、ID 身份证 、NIE外国人西班牙证件号、DNI西班牙岛民证件号、UN 未知 |
| cardNo |
string |
⬜️ |
证件号码,最大 15 个字符 |
| cardIssuePlace |
string |
⬜️ |
证件签发国家,采用 ISO 3166 二字码做为标准 |
| cardExpired |
string |
⬜️ |
证件有效期,格式:YYYYMMDD |
| withPassengerNo |
int |
⬜️ |
当乘客类型为婴儿时此项必须传入,需要备注陪伴的成人乘客的passengerNo |
| nationality |
string |
⬜️ |
乘客国籍,采用 ISO 3166 二字码做为标准 |
| localityCodeOfResidency |
string |
⬜️ |
岛屿分区如: “Castell -Es-“ |
object/contact Element
| 参数名称 |
类型 |
必填 |
说明 |
| fullName |
string |
✅ |
联系人姓名,姓和名之间用/隔开,LastName/FirstName MiddleName |
| address |
string |
✅ |
联系地址 |
| postCode |
string |
⬜️ |
邮编 |
| email |
string |
✅ |
联系人邮箱 |
| mobile |
string |
✅ |
联系人手机号 |
array/passengerBaggages Element
| 参数名称 |
类型 |
必填 |
说明 |
| passengerNo |
int |
⬜️ |
乘客序号,从0开始 |
| passengerName |
string |
⬜️ |
乘客姓名,姓和名之间用/隔开,LastName/FirstName MiddleName |
| payBaggages |
array/payBaggages Element |
⬜️ |
辅营信息 |
array/payBaggages Element
| 参数名称 |
类型 |
必填 |
说明 |
| flightNumber |
string |
✅ |
航班号,如:CA123 |
| depAirport |
string |
✅ |
出发机场代码,采用 IATA 三字代码做为标准 |
| arrAirport |
string |
✅ |
到达机场代码,采用 IATA 三字代码做为标准 |
| depTime |
string |
✅ |
出发日期(当地时间),格式:YYYYMMDDHHMM,例如20230310 表示 2023年3月10日 |
| baggagePrices |
array/baggagePrice Element |
✅ |
辅营价格 |
array/baggagePrice Element
| 参数名称 |
类型 |
必填 |
说明 |
| code |
string |
✅ |
辅营代码,应与SSR接口返回的code保持一致 |
| name |
string |
✅ |
辅营名称,与SSR接口返回的保持一致 |
| type |
int |
✅ |
辅营类型,0 托运行李、1 登机行李、2 值机、3 快速登机+优先登机套餐,与SSR接口返回的保持一致 |
| count |
int |
✅ |
客户预定时需要的辅营数量 |
| weight |
int |
✅ |
行李的重量,与SSR接口返回的保持一致 |
| bookSalePrice |
float |
✅ |
预定时辅营的报价,与SSR接口返回的保持一致,保留2位小数 |
| currency |
string |
✅ |
辅营币种,应与机票一致,与SSR接口返回的保持一致 |
| desc |
string |
⬜️ |
针对辅营的说明,与SSR接口返回的保持一致 |
array/passengerSeats Element
| 参数名称 |
类型 |
必填 |
说明 |
| passengerNo |
int |
✅ |
乘客序号,从0开始 |
| passengerName |
string |
✅ |
乘客姓名,姓和名之间用/隔开,LastName/FirstName MiddleName |
| seats |
array/seats Element |
✅ |
辅营座位信息 |
array/seats Element
| 参数名称 |
类型 |
必填 |
说明 |
| flightNumber |
string |
✅ |
航班号,如:CA123 |
| depAirport |
string |
✅ |
出发机场代码,采用 IATA 三字代码做为标准 |
| arrAirport |
int |
✅ |
到达机场代码,采用 IATA 三字代码做为标准 |
| depTime |
string |
✅ |
起飞日期和起飞时间(当地时间),格式:YYYYMMDDHHMM,例如202303100300 表示 2023年3月10日3时0分 |
| segmentNo |
int |
✅ |
航程顺序,1 去程、2 回程 |
| sequence |
int |
✅ |
航段顺序,从1开始,注意:若是往返,去程和回程都是从1开始 |
| amount |
float |
✅ |
选座的价格,金额为0,代表套餐中包含的免费选座 |
| currency |
string |
✅ |
交易币种 |
| rowNo |
string |
✅ |
座位图的行号 |
| colNo |
string |
✅ |
座位图的列号 |
| data |
string |
✅ |
GetSeat接口返回的data原文,用于供应商做内部业务串联长度不超过64位 |
| deck |
string |
✅ |
M:MainDeck客舱下层;U:UpperDeck客舱上层。 |
| status |
int |
✅ |
0不可选,1可选 |
| nearAisle |
int |
✅ |
是否靠走廊 0: 未知 1: 是 2: 否 |
| nearExit |
int |
✅ |
是否靠出口 0: 未知 1: 是 2: 否 |
| nearLavatory |
int |
✅ |
是否靠厕所 0: 未知 1: 是 2: 否 |
| nearWindow |
int |
✅ |
是否靠窗户 0: 未知 1: 是 2: 否 |
| overWing |
int |
✅ |
是否靠机翼 0: 未知 1: 是 2: 否 |
| allowChildSelected |
int |
⬜ |
是否允许儿童选座 0: 未知 1: 是 2: 否 |
| withInfant |
int |
⬜ |
当前座位是否允许携带婴儿 0: 未知 1: 是 2: 否 |
Object/ServiceTag Element
| 参数名称 |
类型 |
必填 |
说明 |
| ticketSpeed |
int |
✅ |
0:30分钟; 1:1hour 2:12hour |
| nonSplitOrder |
int |
✅ |
0-不限 1-禁止拆单出票) |
| nonReplaceTicketNo |
int |
✅ |
0-不限 1-禁止出票后更换票号) |
| issueMailbox |
int |
✅ |
0-出票方邮箱 1-平台传入 表示是否使用传入的的邮箱在航司出票 |
| issuePhone |
int |
✅ |
0-不限 1-平台传入 表示是否使用传入手机号在航司出票 |
请求示例
{
"requestId": "bc3461520668454e",
"orderNo": "F1726885264686714880",
"tripType": 2,
"sessionId": "aNBOGd3p7Kf72ALZOQY",
"routing": {
"data": "DST_djlfOUNCMkNCSl9QVkd",
"fromSegments": [{
"marketingCarrier": "9C",
"depAirport": "PVG",
"depTime": "202302100915",
"arrAirport": "HKG",
"seatGrade": "",
"seatClass": "V",
"flightNumber": "9C8921",
"codeShare": false,
"aircraftCode": "",
"segmentNo": 1,
"operatingCarrier": "",
"operatingFlightNo": "",
"stopCities": ""
}],
"retSegments": [{
"marketingCarrier": "9C",
"depAirport": "HKG",
"depTime": "202302151320",
"arrAirport": "PVG",
"seatClass": "V",
"seatGrade": "",
"flightNumber": "9C8922",
"codeShare": false,
"aircraftCode": "",
"segmentNo": 2,
"operatingCarrier": "",
"operatingFlightNo": "",
"stopCities": ""
}]
},
"passengers": [{
"passengerNo": 0,
"name": "ZHANG/SAN",
"ageType": 0,
"birthday": "19890910",
"gender": "M",
"cardType": "",
"cardNo": "",
"cardIssuePlace": "CN",
"cardExpired": "20201125",
"nationality": "CN"
}],
"contact": {
"fullName": "ZHANG/SAN",
"address": "XXX, Beijing, China",
"postCode": "200335",
"email": "SAN@aerohubtech.com",
"mobile": "13810001234"
},
"passengerBaggages": [{
"passengerNo": 0,
"passengerName": "QIN/GANGFENG",
"payBaggages": [{
"flightNumber": "9C8921",
"depAirport": "PVG",
"arrAirport": "HKG",
"depTime": "202002100915",
"baggagePrices": [{
"code": "PA20",
"name": "20 KG",
"type": 1,
"count": 1,
"weight": 20,
"bookSalePrice": 100,
"currency": "USD",
"desc": ""
}, {
"code": "PA30",
"name": "30 KG",
"type": 1,
"count": 2,
"weight": 30,
"bookSalePrice": 180,
"currency": "USD",
"desc": ""
}]
}]
}],
"passengerSeats": [{
"passengerNo": 0,
"passengerName": "QIN/GANGFENG",
"seats": [{
"flightNumber": "9C8921",
"depAirport": "PVG",
"arrAirport": "HKG",
"segmentNo": 1,
"sequence": 1,
"depTime": "202002100915",
"amount": 19.32,
"currency": "USD",
"rowNo": "1",
"colNo": "A",
"data": "eyJzZXJ2aWNlQ29kZSI6ICJTVEZTIiwgI0=",
"deck": "M",
"status": 1,
"nearAisle": 0,
"nearExit": 0,
"nearLavatory": 0,
"nearWindow": 0,
"overWing": 0,
"allowChildSelected": 0,
"withInfant": 0
}, {
"flightNumber": "9C8922",
"depAirport": "HKG",
"arrAirport": "TYO",
"segmentNo": 2,
"sequence": 1,
"depTime": "202002301115",
"amount": 29.32,
"currency": "USD",
"rowNo": "10",
"colNo": "B",
"data": "eyJzZXJ2aWNlQ29kZSI6ICJTVEZTIiwgI0=",
"deck": "M",
"status": 1,
"nearAisle": 0,
"nearExit": 0,
"nearLavatory": 0,
"nearWindow": 0,
"overWing": 0,
"allowChildSelected": 0,
"withInfant": 0
}]
}]
}
返回参数
| 参数名称 |
类型 |
必填 |
说明 |
| marketErrorCode |
int |
✅ |
供应商系统错误码,用于协助AeroHub与供应商排查问题,请如实返回真实错误 |
| marketErrorMsg |
string |
✅ |
供应商系统错误描述,请如实返回真实错误原因,长度小于 300 |
| sessionId |
string |
✅ |
会话标识,供应商在预定环节串联各个接口的唯一标识,由数字或字母组成,最大长度40字符 |
| orderNo |
string |
✅ |
供应商自己系统的订单号,最大 30 个字符,AeroHub会记录本字段,用于后期追溯 |
| pnrCode |
string |
✅ |
用于报价/占舱的PNR编码 |
| maxSeats |
int |
✅ |
预订的总座位数,最大为 9 |
| orderContact |
object |
✅ |
实际预定时的使用的联系方式,应与航司官网预定管理中联系方式一致,且能用这里的邮箱接收到航司邮件 |
| routing |
object |
✅ |
行程与报价信息,参考Verify接口中的object/routing Element |
| passengerBaggages |
array/passengerBaggages Element |
⬜️ |
实际预定的辅营信息,应与请求时保持一致,本参数用于校验双方系统订单预定是否一致 |
| passengerSeats |
array/passengerSeats Element |
⬜️ |
辅营选座信息 |
| ticketCurrencyPolicy |
string |
⬜ |
官网出票时币种的要求,当为空时表示不限,返回值为ORIGIN时表示需要实发地币种在官网支付出票 |
返回示例
Success-Response:
{
"marketErrorCode": 200,
"marketErrorMsg": "Successful",
"sessionId": "5821bdc6e733aec47432d2omyrwz",
"orderNo": "lf24011914090061116",
"pnrCode": "5MO00B",
"maxSeats": 3,
"orderContact": {
"address": "Beijing 62",
"fullName": "ZHANG/SAN",
"mobile": "911114174",
"email": "zhangsan@aerohub.com",
"postCode": "10001"
},
"routing": {
"data": "eyJzIjogIjU4MjFiZGM2ZTczM2FlY==",
"fromSegments": [{
"marketingCarrier": "T6",
"seatClass": "B",
"depAirport": "USU",
"arrAirport": "ENI",
"codeShare": false,
"aircraftCode": "",
"stopCities": "",
"flightNumber": "T6537",
"seatGrade": "Y",
"segmentNo": 0,
"depTime": "2024-01-25T12:50:00",
"arrTime": "2024-01-25T13:30:00",
"operatingCarrier": "",
"operatingFlightNo": ""
}],
"retSegments": [],
"priceList": [{
"passengerType": 0,
"publishPrice": 55.37,
"price": 55.37,
"taxFeeAmount": 19.56,
"taxFeeDisclosureList": null
},
{
"passengerType": 1,
"publishPrice": 55.37,
"price": 55.37,
"taxFeeAmount": 19.56,
"taxFeeDisclosureList": null
}
],
"originPriceList": [{
"passengerType": 0,
"publishPrice": 55.37,
"price": 55.37,
"taxFeeAmount": 19.56,
"taxFeeDisclosureList": null
},
{
"passengerType": 1,
"publishPrice": 55.37,
"price": 55.37,
"taxFeeAmount": 19.56,
"taxFeeDisclosureList": null
}
],
"eligibility": "",
"validatingCarrier": "T6",
"productType": "",
"fareBasis": "",
"bookingOfficeNo": "",
"ticketingOfficeNo": "",
"reservationType": "1X",
"posCode": "",
"complexTerm": 0,
"minAge": 0,
"maxAge": 0,
"planCategory": "",
"invoiceType": "E",
"minPassengerCount": 1,
"maxPassengerCount": 9,
"note": "",
"airlineAncillaries": null,
"formatBaggageDetailList": [{
"segmentNo": 1,
"flightSeq": "1",
"passengerType": 0,
"baggagePiece": 0,
"baggageWeight": -1
},
{
"segmentNo": 1,
"flightSeq": "1",
"passengerType": 1,
"baggagePiece": 0,
"baggageWeight": -1
}
],
"refundInfoList": [{
"passengerType": 0,
"refundType": 0,
"refundStatus": "T",
"refundFee": 0.0,
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0.0,
"conditionList": null
},
{
"passengerType": 1,
"refundType": 0,
"refundStatus": "T",
"refundFee": 0.0,
"refNoshow": "T",
"refNoShowCondition": 0,
"refNoshowFee": 0.0,
"conditionList": null
}
],
"changesInfoList": [{
"passengerType": 0,
"changesType": 0,
"changesStatus": "T",
"changesFee": 0.0,
"revNoShow": "",
"revNoShowCondition": 0,
"revNoShowFee": 0.0,
"conditionList": null
},
{
"passengerType": 1,
"changesType": 0,
"changesStatus": "T",
"changesFee": 0.0,
"revNoShow": "",
"revNoShowCondition": 0,
"revNoShowFee": 0.0,
"conditionList": null
}
],
"packageInfo": {
"packageType": "",
"packageName": ""
},
"currency": "USD",
"ticketTimeUnit": 0,
"combineIndexs": null,
"endorsement": 0
},
"passengerBaggages": [{
"passengerNo": 0,
"passengerName": "ZHANG/SAN",
"payBaggages": [{
"flightNumber": "T6537",
"depAirport": "USU",
"arrAirport": "ENI",
"depTime": "2024-01-25T12:50:00",
"baggagePrices": [{
"code": "PA20",
"name": "20 KG",
"type": 0,
"count": 2,
"weight": 20.0,
"bookSalePrice": 15.32,
"currency": "USD",
"desc": ""
}]
}]
},
{
"passengerNo": 1,
"passengerName": "LI/SI",
"payBaggages": [{
"flightNumber": "T6537",
"depAirport": "USU",
"arrAirport": "ENI",
"depTime":"202002100915",
"baggagePrices": [{
"code": "PA20",
"name": "20 KG",
"type": 0,
"count": 2,
"weight": 20.0,
"bookSalePrice": 15.32,
"currency": "USD",
"desc": ""
}]
}]
},
{
"passengerNo": 2,
"passengerName": "WANG/WU",
"payBaggages": [{
"flightNumber": "T6537",
"depAirport": "USU",
"arrAirport": "ENI",
"depTime": "202002100915",
"baggagePrices": [{
"code": "PA20",
"name": "20 KG",
"type": 0,
"count": 2,
"weight": 20.0,
"bookSalePrice": 15.32,
"currency": "USD",
"desc": ""
}]
}]
}
],
"passengerSeats": [{
"passengerNo": 0,
"passengerName": "QIN/GANGFENG",
"seats": [{
"flightNumber": "9C8921",
"depAirport": "PVG",
"arrAirport": "HKG",
"depTime": "202002100915",
"segmentNo": 1,
"sequence": 1,
"amount": 19.32,
"currency": "USD",
"rowNo": "1",
"colNo": "A",
"data": "eyJzZXJ2aWNlQ29kZSI6ICJTVEZTIiwgI0=",
"deck": "M",
"status": 1,
"nearAisle": 0,
"nearExit": 0,
"nearLavatory": 0,
"nearWindow": 0,
"overWing": 0,
"allowChildSelected": 0,
"withInfant": 0
},
{
"flightNumber": "9C8922",
"depAirport": "HKG",
"arrAirport": "TYO",
"depTime": "202002301115",
"segmentNo": 2,
"sequence": 1,
"amount": 29.32,
"currency": "USD",
"rowNo": "10",
"colNo": "B",
"data": "eyJzZXJ2aWNlQ29kZSI6ICJTVEZTIiwgI0=",
"deck": "M",
"status": 1,
"nearAisle": 0,
"nearExit": 0,
"nearLavatory": 0,
"nearWindow": 0,
"overWing": 0,
"allowChildSelected": 0,
"withInfant": 0
}
]
}]
}],
"processTime": 2.9854
}
Error-Response
{
"marketErrorCode": 5112,
"marketErrorMsg": "Price changed to no seat"
}
Author:AeroHub Create time:2023-07-10 16:13
Last editor:AeroHub Update time:2025-10-28 15:50