验证价格库存接口(商家封装服务)
第三方系统根据此接口定义实现试单方法,并暴露成服务。去啊系统在用户下单时调用第三方的试单服务来确认产品是否可售。
接收阿里旅行调用接口方式
1. 由第三方提供一个接收阿里请求的服务地址(注意:所有的接口请求均用这个相同的地址),以及用于验证的用户名和密码。
2. 第三方根据请求参数中的xml父节点区分业务请求类型,根据文档要求开发接收请求数据和返回相应的数据
名称 |
类型 |
是否必须 |
最大长度/取值范围 |
描述 |
示例值 |
|
Username |
String |
是 |
100 |
第三方系统接口调用需要校验时的用户名。 |
taobao |
|
Password |
String |
是 |
100 |
第三方系统接口调用需要校验时的密码 |
taobao |
|
CreateToken |
String |
是 |
255 |
单次请求token |
taobao1387784033263-1387784033266 |
|
TaoBaoHotelId |
long |
是 |
|
淘宝酒店id |
123456789 |
|
HotelId |
String |
是 |
64 |
OTA酒店id,即第三方系统中的酒店id |
80 |
|
TaoBaoRoomTypeId |
long |
是 |
|
淘宝房型id |
123456978 |
|
RoomTypeId |
String |
是 |
64 |
OTA房型id,即第三方系统中的房型id |
1205
|
|
TaoBaoRatePlanId |
long |
是 |
|
淘宝价格计划id |
123000123
|
|
RatePlanCode |
String |
是 |
64 |
OTA价格计划id,即第三方系统中的价 格计划id |
VIP
|
|
TaoBaoGid |
long |
是 |
|
淘宝酒店商品id |
123456789 0
|
|
CheckIn |
Date |
是 |
yyyy-MM-dd |
入住时间 |
2013-12-24 |
|
CheckOut |
Date |
是 |
yyyy-MM-dd |
离店日期。 注:小时房默认离店日期等同于入住日 期,如有特殊需求请联系技术支持 |
2013-12-26 |
|
RoomNum |
int |
是 |
取值:1-9 |
房间数量(最大为9) |
1 |
|
CustomerNumber |
int |
是 |
取值:1-9 |
入住人数 |
3 |
|
Occupancy |
Occupancy |
否 | 不支持儿童价的商家,不显示此字段 支持儿童价的商家,此字段会显示 |
|||
Occupancy.AdultNumber | int | 否 | 取值:1-9 | 成人数量 不支持儿童价的商家,不显示此字段 支持儿童价的商家,此字段会显示 |
2 | |
Occupancy.ChildrenNumber |
int | 否 | 儿童数量 不支持儿童价的商家,不显示此字段 支持儿童价的商家,此字段会显示 |
1 | ||
Occupancy.ChildrenAge |
List<Integer> | 否 | 儿童年龄列表 不支持儿童价的商家,不显示此字段 支持儿童价的商家,此字段会显示 |
|||
Occupancy.ChildrenAge.Age |
int | 否 | 儿童年龄 不支持儿童价的商家,不显示此字段 支持儿童价的商家,此字段会显示 |
|||
PaymentType |
int |
是 |
取值:1、5、6 |
支付方式1预付5面付6信用住 |
5 |
|
Extensions |
String |
否 |
|
扩展字段json,用于处理特殊OTA个 性需求添加的扩展字段 |
{"key":"value"} |
|
Supplier |
String |
否 |
供应商 | taobao | ||
TotalPrice |
Long |
否 |
订单总价,单位分 包含儿童价部分 |
10000 | ||
DailyInfos |
DailyInfos |
否 | 每日价格 | |||
CurrencyCode |
String |
否 | 币种 | CNY |
示例:
<ValidateRQ> <AuthenticationToken> <Username>taobao</Username> <Password>B75!jaJb[eO8</Password> <CreateToken>22251178182015010620150107497867981843210904377</CreateToken> </AuthenticationToken> <TaoBaoHotelId>1357757818</TaoBaoHotelId> <HotelId>3FENY3V11P</HotelId> <TaoBaoRoomTypeId>5501264818</TaoBaoRoomTypeId> <RoomTypeId>3FENY3V11P-RT1241</RoomTypeId> <TaoBaoRatePlanId>4978679818</TaoBaoRatePlanId> <RatePlanCode>3FENY3V11P-RT1241-RP846</RatePlanCode> <TaoBaoGid>3824371818</TaoBaoGid> <CheckIn>2015-01-06</CheckIn> <CheckOut>2015-01-07</CheckOut> <RoomNum>1</RoomNum> <CustomerNumber>4</CustomerNumber> <Occupancy> <AdultNumber>2</AdultNumber> <ChildrenNumber>2></ChildrenNumber> <ChildrenAge> <Age>12</Age> <Age>9</Age> </ChildrenAge> </Occupancy> <PaymentType>1</PaymentType> <Extensions>{"searchid":"22251178182015010620150107497867981843210904377"} </Extensions> <TotalPrice>7949</TotalPrice> </ValidateRQ> |
返回结果(成功)
名称 |
类型 |
是否必须 |
限制范围 |
描述 |
示例值 |
Message |
String |
否 |
300 |
试单可能需要返回的一些描述信息 |
123456 |
CreateOrderValidateKey |
String |
否 |
512 |
该返回值用于接入方需要在下单时传入的试单信息(如试单Key或ID等等,接入方自己定义格式,淘宝会把该返回值原封不动透传到“订单创建”接口参数Extensions字段中,Key为CreateOrderValidateKey) |
abc73772883333 |
ResultCode |
String |
是 |
取值:0 |
处理结果,0成功 |
0 |
InventoryPrice |
String |
是 |
请求期间价格库存日历 |
价格日历 其中Price是总价 price=roomPrice+tax+serviceFee roomPrice是房费(儿童加价应包含在内) tax是税费 serviceFee是服务费 如果没有拆分房费税费服务费只需要传price值,拆分了且需要传的话,必须保证三者都有值,quota是剩余真实库存 如果试单请求中的RatePlanCode属于底价加价的价格计划,价格日历中仅填充price字段 |
[{"date":"2015-01-01","price":21000,"roomPrice":19000, |
CurrencyCode |
String | 否 | 如果是外币,此项为必填,如不返回,默认为CNY |
CNY,USD,HKD |
示例:
<?xml version="1.0" encoding="utf-8"?> <Result> <Message></Message> < CreateOrderValidateKey></ CreateOrderValidateKey> <ResultCode>0</ResultCode> <InventoryPrice> [{"date":"2015-01-01","price":21000,"roomPrice":19000,"tax":2000,"serviceFee":0,"quota":4},{"date":"2015-01-02","price":22000,"roomPrice":20000,"tax":2000,"serviceFee":0,"quota":4},{"date":"2015-01-03","price":25000,"roomPrice":23000,"tax":2000,"serviceFee":0,"quota":5}] </InventoryPrice> <CurrencyCode>CNY</CurrencyCode> </Result> |
返回结果(失败)
名称 |
类型 |
是否必须 |
限制范围 |
描述 |
示例值 |
Message |
String |
是 |
|
错误原因 |
满房 |
ResultCode |
String |
是 |
取值:-1,-2,-3, -4 |
错误码 -1:表示满房(请求日期段库存都为0,不可预定) -2:标识RP失效 -3:房量不足(请求日期端库存不全部为0,部分可售) -4: 其他不可预定(发生异常等) |
-1 |
InventoryPrice |
String |
否 |
请求期间价格库存日历 |
价格日历 |
[{"date":"2015-01-01","price":21000,"quota":4},{"date":"2015-01-02","price":22000,"quota":4},{"date":"2015-01-03","price":25000,"quota":5}] |
示例:
<!--满房--> <?xml version="1.0" encoding="utf-8"?> <Result> <Message>满房</Message> <ResultCode>-1</ResultCode> </Result>
<!--房量不足--> <?xml version="1.0" encoding="utf-8"?> <Result> <Message>房量不足</Message> <ResultCode>-3</ResultCode> <InventoryPrice> [{"date":"2015-01-01","price":21000,"quota":0},{"date":"2015-01-02","price":22000,"quota":4},{"date":"2015-01-03","price":25000,"quota":0}] </InventoryPrice> </Result> |
返回结果定义表
以下是第三方接到支付成功请求后,处理成功或失败时应该返回的结果。此表已定义结果类型不会修改,但可能会根据业务情况进行增补。
ResultCode |
Message |
备注 |
0 |
处理成功 |
|
-1 |
处理失败-满房 |
请求日期段库存都为0,返回满房。系统会清空对应日历的库存报价 |
-2 |
处理失败-价格计划问题 |
失效对应的价格计划 |
-3 |
处理失败-房量不足 |
房量不足(请求日期端库存不全部为0,部分可售) |
-4 |
其他失败 |
例如发生异常等 |
注:1、除了以上4种状态,不允许返回其余错误信息。所有第三方系统原因的错误都由系统商自行消化。返回明确的结果。
2、试单如果需要返回退订政策、担保信息的商家。请与阿里技术联系解决方案。