注:
1.可以只接2.1,2.4或者2.2,2.4
2.接入2.2需要同时接入2.3
飞猪调用接入方
请求参数
HotelTicketOrderRequestDTO
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
fliggyOrderId | String | 是 | 飞猪订单号 |
orderId | String | 否 | 接入方订单号 |
hotelTicketOrderProduct | HotelTicketOrderProduct | 是 | 订单产品相关信息 |
startDate | String | 是 | 入住时间;yyyy-MM-dd |
endDate | String | 是 | 离开时间;yyyy-MM-dd |
touristGroup | TouristGroup | 是 | 入住团信息 |
subProducts | List<CommonSubProduct> | 否 | 子产品信息 |
extendParams | Map<String,Object> | 否 | mode:1:二次预约,2:日历 扩展参数{“mode”:“1”} |
订单产品信息:HotelTicketOrderProduct
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
productId | String | 是 | 接入方产品编码(产品ID) |
price | Long | 是 | 产品单价。单位:分 |
quantity | Integer | 是 | 订单购买产品件数 |
sessions | List<Session> | 否 | 场次信息。 |
totalPrice | Long | 是 | 订单总价 |
场次:Session
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
sessionId | String | 是 | 场次ID |
price | Long | 是 | 产品单价。单位:分 |
入住团:TouristGroup
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
totalPersonNumber | Integer | 是 | 订单总人数 |
adultNumber | Integer | 是 | 成人数 |
childNumber | Integer | 是 | 儿童数 |
contact | Contact | 是 | 联系人信息 |
travellers | List<Traveller> | 是 | 出行人信息集合 通常指房间绑定的出行人信息 |
联系人:Contact
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
name | String | 是 | 姓名 |
String | 否 | 邮箱 | |
mobile | String | 是 | 电话 |
游玩人:Traveller
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
name | String | 是 | 姓名 |
String | 否 | 邮箱 | |
mobile | String | 否 | 电话 |
certificateType | Integer | 是 | 证件类型 |
certificateId | String | 是 | 证件号 |
通用子产品:CommonSubProduct
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type | Integer | 是 | 子产品类型。type=4,5,6,7,8 |
code | String | 是 | 子产品编码 |
travelDate | String | 是 | 出行日期;yyyy-MM-dd |
singlePackageNum | Integer | 是 | 单个套餐该子产品数量 |
total | Integer | 是 | 子产品总数 |
酒店子产品:HotelSubProduct
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type | Integer | 是 | 子产品类型。type=2 |
code | String | 是 | 子产品编码 |
travelDate | String | 是 | 出行日期;yyyy-MM-dd |
singlePackageNum | Integer | 是 | 单个套餐该子产品数量 |
total | Integer | 是 | 子产品总数 |
roomTypeCode | String | 是 | 房间类型 |
bedTypeCode | String | 否 | 床型 |
endDate | String | 是 | 离开日期;yyyy-MM-dd |
adultNum | String | 否 | 成人数 |
childrenNum | String | 否 | 儿童数 |
餐饮子产品:CateringSubProduct
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type | Integer | 是 | 子产品类型。type=3 |
code | String | 是 | 子产品编码 |
travelDate | String | 是 | 出行日期;yyyy-MM-dd |
singlePackageNum | Integer | 是 | 单个套餐该子产品数量 |
total | Integer | 是 | 子产品总数 |
period | Integer | 否 | 餐段代码 |
门票子产品:TicketSubProduct
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type | Integer | 是 | 子产品类型。type=1 |
code | String | 是 | 子产品编码 |
travelDate | String | 是 | 出行日期;yyyy-MM-dd |
singlePackageNum | Integer | 是 | 单个套餐该子产品数量 |
total | Integer | 是 | 子产品总数 |
travellerIdentifiers | List<TravellerIdentifier> | 否 | 该产品对应出行人 |
门票子产品出行人信息:TravellerIdentifier
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
certificateType | Integer | 是 | 证件类型 |
certificateId | String | 是 | 证件号 |
返回数据
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
code | Integer | 是 | 返回码。0为成功,其他为失败 |
message | String | 否 | 失败需要返回具体错误信息 |
请求示例
{ "endDate": "2022-05-09", "fliggyOrderId": "TB123456", "hotelTicketOrderProduct": { "price": 12300, "productId": "abc_123", "quantity": 1, "totalPrice": 12300 }, "startDate": "2022-05-08", "subProducts": [{ "code": "ab", "period": 1, "singlePackageNum": 1, "total": 1, "travelDate": "2022-05-08", "type": 3 }, { "adultNum": 2, "bedTypeCode": "gh", "code": "cd", "endDate": "2022-05-09", "roomTypeCode": "ef", "travelDate": "2022-05-08", "type": 2 }], "touristGroup": { "adultNumber": 2, "contact": { "mobile": "18888888888", "name": "姓名1" }, "totalPersonNumber": 2, "travellers": [{ "certificateId": "632323190605268561", "certificateType": 0, "name": "游客1" }, { "certificateId": "632323190605268562", "certificateType": 0, "name": "游客2" }] } }
响应示例
{"code":0,"message":"OK"}
飞猪调用接入方
实现2.2,必须实现2.3来释放占用库存
接口方法定义:com.alitrip.travel.gateway.client.GwHotelTicketOrderService#preOrder
请求参数:与2.1 预校验接口一致
返回数据
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
code | Integer | 是 | 返回码。0为成功,其他为失败 |
message | String | 否 | 失败需要返回具体错误信息 |
data | HotelTicketOrderResponse | 否 | 成功则需要返回 |
HotelTicketOrderResponse
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
orderId | String | 是 | 对接方订单号 |
请求示例
{ "endDate": "2022-05-09", "fliggyOrderId": "TB123456", "hotelTicketOrderProduct": { "price": 12300, "productId": "abc_123", "quantity": 1, "totalPrice": 12300 }, "startDate": "2022-05-08", "subProducts": [{ "code": "ab", "period": 1, "singlePackageNum": 1, "total": 1, "travelDate": "2022-05-08", "type": 3 }, { "adultNum": 2, "bedTypeCode": "gh", "code": "cd", "endDate": "2022-05-09", "roomTypeCode": "ef", "travelDate": "2022-05-08", "type": 2 }], "touristGroup": { "adultNumber": 2, "contact": { "mobile": "18888888888", "name": "姓名1" }, "totalPersonNumber": 2, "travellers": [{ "certificateId": "632323190605268561", "certificateType": 0, "name": "游客1" }, { "certificateId": "632323190605268562", "certificateType": 0, "name": "游客2" }] } }
响应示例
{ "code": 0, "data": { "orderId": "1212425" }, "message": "OK" }
飞猪调用接入方
5分钟未对订单进行支付则会调用该接口取消订单
实现2.2,必须实现2.3来释放占用库存,没有实现2.2则该接口非必接
请求参数
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
fliggyOrderId | String | 是 | 飞猪订单号 |
orderId | String | 否 | 对接方订单号 |
返回参数
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
code | Integer | 是 | 返回码。0为成功,其他为失败 |
message | String | 否 | 失败需要返回具体错误信息 |
请求示例
{ "fliggyOrderId": "TB123456", "orderId": "1212425" }
响应示例
{ "code": 0, "message": "OK" }
飞猪调用接入方
必接
请求参数:与2.1预校验接口一致
返回数据
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
code | Integer | 是 | 返回码。0为成功,其他为失败 |
message | String | 否 | 失败需要返回具体错误信息 |
data | HotelTicketOrderResponse | 是 | 成功则需要返回 |
HotelTicketOrderResponse
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
orderId | String | 是 | 对接方订单号 |
status | Integer | 是 | 订单状态。1(出票中),通过发码通知接口出票;2(已出票),无须调用发码通知接口。 |
vouchers | List<HotelTicketVoucher> | 否 | 订单状态为2(已出票)且有凭证则返回 |
出票状态:1-出票中;2-已出票
凭证信息:HotelTicketVoucher
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type | Integer | 是 | 凭证类型 1:票码, 2:券码 |
bizType | Integer | 是 | 业务类型:1:门票, 2:酒店 |
code | String | 是 | 凭证码 |
certificateId | String | 否 | 证件号 |
img | byte[] | 否 | 二维码图片 |
url | String | 否 | 凭证链接 |
availableNums | Integer | 是 | 每张票或券可使用次数(如针对一码多刷,往返索道3张票1个码,每张票可使用次数为2,则该码可以刷6次 |
usageNums | Integer | 是 | 已使用次数 |
canUse | Boolean | 否 | 凭证是否可用 |
请求示例
{ "endDate": "2022-05-09", "fliggyOrderId": "TB123456", "hotelTicketOrderProduct": { "price": 12300, "productId": "abc_123", "quantity": 1, "totalPrice": 12300 }, "startDate": "2022-05-08", "subProducts": [{ "code": "ab", "period": 1, "singlePackageNum": 1, "total": 1, "travelDate": "2022-05-08", "type": 3 }, { "adultNum": 2, "bedTypeCode": "gh", "code": "cd", "endDate": "2022-05-09", "roomTypeCode": "ef", "travelDate": "2022-05-08", "type": 2 }], "touristGroup": { "adultNumber": 2, "contact": { "mobile": "18888888888", "name": "姓名1" }, "totalPersonNumber": 2, "travellers": [{ "certificateId": "632323190605268561", "certificateType": 0, "name": "游客1" }, { "certificateId": "632323190605268562", "certificateType": 0, "name": "游客2" }] } }
响应示例
// 发码回调发码的创单成功响应 { "code": 0, "data": { "orderId": "1212425", "status":3 }, "message": "OK" } // 创单发码的创单成功响应 { "code": 0, "data": { "orderId": "1212425", "status": 4, "vouchers": [{ "availableNums": 1, "canUse": true, "code": "123454234", "type": 1, "usageNums": 0 }] }, "message": "OK" } // 创单成功且状态为4(已出票)的响应 { "code": 0, "data": { "orderId": "1212425", "status":4 }, "message": "OK" }
飞猪调用接入方
必接
请求参数
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
fliggyOrderId | String | 是 | 飞猪订单号 |
orderId | String | 否 | 接入方订单号 |
响应参数
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
code | Integer | 是 | 返回码。0为成功,其他为失败 |
message | String | 否 | 失败需要返回具体错误信息 |
data | HotelTicketOrderResponse | 是 | 成功则需要返回 |
HotelTicketOrderResponse
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
orderId | String | 否 | 对接方订单号 |
status | Integer | 是 | 退款状态:1(退款成功), 2(退款拒绝),3(退款中), 其他则以失败结果返回即可 |
refundRefusedReason | String | 否 | 退款拒绝原因。退款状态是退款拒绝时必填。 |
退款状态:1-退款成功;2-退款拒绝;3-退款中
请求示例
{ "fliggyOrderId": "TB123456", "orderId": "1212425" }
响应示例
// 退款成功 { "code": 0, "data": { "orderId": "1212425", "status":1 }, "message": "OK" } // 退款成功 ,需要异步回调 { "code": 0, "data": { "orderId": "1212425", "status":3 }, "message": "OK" } // 退款失败 { "code": 60003, "message": "订单未支付或者已使用订单不允许退款" } // 拒绝退款 { "code": 0, "data": { "orderId": "1212425", "status":2, "refundRefusedReason":"订单设置不允许退款" }, "message": "" }
飞猪调用接入方
必接,用来同步数据状态
请求参数
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
fliggyOrderId | String | 是 | 飞猪订单号 |
orderId | String | 否 | 接入方订单号 |
响应数据
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
code | Integer | 是 | 返回码。0为成功,其他为失败 |
message | String | 否 | 失败需要返回具体错误信息 |
data | HotelTicketOrderResponse | 是 | 成功则需要返回 |
HotelTicketOrderResponse
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
orderId | String | 否 | 对接方订单号 |
status | Integer | 是 | 订单状态 |
vouchers | List<HotelTicketVoucher> | 否 | 有凭证则返回 |
订单状态:0-已创单;2-出票中; 3-已出票;4-已核销; 5-退款中; 6-已退款; 7-未支付关单;8-出票失败;9-退款失败;
凭证信息:HotelTicketVoucher
字段 | 类型 | 是否必填 | 说明 |
---|---|---|---|
type | Integer | 是 | 凭证类型 1:票码, 2:券码 |
bizType | Integer | 是 | 业务类型:1:门票, 2:酒店 |
code | String | 是 | 凭证码 |
certificateId | String | 否 | 证件号 |
img | byte[] | 否 | 二维码图片 |
url | String | 否 | 凭证链接 |
availableNums | Integer | 是 | 每张票或券可使用次数(如针对一码多刷,往返索道3张票1个码,每张票可使用次数为2,则该码可以刷6次 |
usageNums | Integer | 是 | 已使用次数 |
canUse | Boolean | 否 | 凭证是否可用 |
请求示例
{ "fliggyOrderId": "TB123456", "orderId": "1212425" }
响应示例
// 有凭证 { "code": 0, "data": { "orderId": "1212425", "status": 4, "vouchers": [{ "availableNums": 2, "canUse": true, "code": "123454234", "type": 1, "usageNums": 0 }] }, "message": "OK" } // 无凭证 { "code": 0, "data": { "orderId": "1212425", "status": 4 }, "message": "OK" }
接入方调用飞猪
接口:alitrip.travel.hotelticket.order.create
接入方调用飞猪
接口:alitrip.travel.hotelticket.order.verify
接入方调用飞猪
接口:alitrip.travel.hotelticket.order.refund