方法名称
hotel.list
使用说明
1.酒店列表搜索,可搜索180天内的可卖酒店数据。日期的限定可以在日历上实现,同时在调用接口前验证。
2.搜索结果对应的库存已经做到每分钟更新。
3.【注意】目前列表搜索每个酒店只返回最多两个产品。如果有展开报价的功能,需请求一次hotel.detail接口。
4.支付方式:
分为现付和预付
现付:分为担保与非担保:
担保:分为全额担保和首晚担保,都需要考虑取消的情况,但客户到店依然需要支付房费,担保的费用会退回用户。
预付:预付都是全额预付,也要考虑取消的情况。
现付的担保和预付的全款都需要调用支付功能。
艺龙提供一种公司担保业务,开通此业务,成单时可以不向艺龙提交用户的信用卡信息。需要开通请联系商务。
输入参数
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
ArrivalDate | 入住日期 | Date | N | 大于等于昨天。如果入住的时间为凌晨,那么传入前一天的日期。使用yyyy-MM-dd格式,例如:2022-12-09,其他格式不保证可用 |
DepartureDate | 离店日期 | Date | N | 至少晚于到店时间1天,不多于30天. 使用yyyy-MM-dd格式,例如:2022-12-09,其他格式不保证可用 |
CityId | 城市编码 | String(4) | N | 可以从GEO数据静态文件中获取,不可为空 |
QueryText | 查询关键词 | String(50) | Y | 全文检索,可以是酒店名、位置或品牌等。使用本参数的时候,需要输入CityId或DistrictId |
QueryType | 查询类型 | Enum | Y | Intelligent 智能搜索 (默认) HotelName 酒店名称 LocationName 位置名称 |
PaymentType | 支付方式 | Enum | Y | All-全部(默认)、SelfPay-现付、Prepay-预付 具体信息查看使用说明 |
ProductProperties | 产品类型 | String | Y | 支持多个选项同时传入,以逗号分隔。本参数是筛选包含指定条件的酒店,结果中的酒店可能包含其他属性的产品请自行过滤。可选值为: All =全部, LastMinuteSale =今日特价, LimitedTimeSale =限时抢购, WithoutGuarantee =免担保 AdvanceBooking=早订优惠 LongStayBooking=连住优惠 |
Facilities | 设施 | String(50) | Y | 可以逗号分隔的组合,建议最多3个。 以上是本接口使用的简略设施信息,与静态信息中获取的设施id并不对应。 目前设施id不再固定,而是不同城市拥有各自不同的设施和对应的id,请定期通过静态信息接口:https://api.elongstatic.com/xml/v2.0/hotel/facilities_cn.xml,来获取最新的设施和对应的id,一般建议每天获取一次。 |
ThemeIds | 主题 | String(50) | Y | 可以逗号分隔的组合,建议最多3个(建议不使用该参数,推荐使用FilterList参数)。 目前主题id不再固定,而是不同城市拥有各自不同的主题和对应的id,请定期通过静态信息接口:https://api.elongstatic.com/xml/v2.0/hotel/theme_cn.xml,来获取最新的主题和对应的id,一般建议每天获取一次。 |
FilterList | 过滤项列表 | List | Y | 包含多个HotelFilterType节点 |
StarRate | 推荐星级 | String(10) | Y | 对应酒店详情静态文件中的Category。搜索多个星级以逗号分隔 可选值:0,1,2:客栈;3:舒适;4:高档;5:豪华;A:公寓 |
BrandId | 品牌编码 | String(10) | Y | 可以从酒店品牌静态文件中获取 |
GroupId | 酒店集团编码 | Int | Y | |
LowRate | 最小价格 | Int | Y | 过滤的是酒店中的产品,如果酒店的产品有一个满足这个区间这个酒店就算满足这个条件。注意不是按酒店最低价格来过滤的。 |
HighRate | 最大价格 | Int | Y | |
DistrictId | 地区编码 | String(10) | Y | 可以从GEO数据静态文件中获取 |
BusinessZoneId | 商圈编码 | String(10) | Y | 可以从GEO数据静态文件中获取 |
Position | 位置查询 | Element | Y | 点选位置搜索,坐标采用百度的坐标体系,字段参考Position节点 注意: 1.本字段不为空时,其中所有的属性(Longitude、Latitude、Radius)都不能为空,且Longitude、Latitude、Radius三个属性的首字母必须大写。 2.本字段不为空时,搜索类型是周边搜索,返回的酒店经纬度会在指定半径范围,但如果传入了QueryText且这边解析为一个poi, 则按照poi类型搜索,不会按照周边搜索,所以可能返回的经纬度超出指定范围。 3.如果本字段为空,默认搜索类型为地区搜索,如果传入了QueryText,且这边解析为poi, 则按照poi类型搜索 |
InvoiceMode | 预付发票模式 | String | Y | Elong-艺龙开发票、Hotel-酒店开发票 不传该字段表示不限制发票类型 前台自付产品都是酒店开发票,这里的过滤是针对预付产品。需要注意Elong艺龙开发票其实是艺龙可以提供代开发票服务,如果需要开通,请联系商务 |
Sort | 排序类型 | Enum | Y | Default艺龙默认排序 StarRankDesc推荐星级降序 RateAsc价格升序 RateDesc价格降序 DistanceAsc距离升序 |
PageIndex | 页码 | Int | Y | 从1开始 |
PageSize | 每页记录数 | Int | Y | 取值范围:1-20,默认为10 |
CustomerType | 宾客类型 | String | Y | None=全部; (默认) All=统一价; Chinese =内宾价,需提示客人“须持大陆身份证入住”; OtherForeign =外宾价,需提示客人“须持国外护照入住”; HongKong =港澳台客人价,需提示客人“须持港澳台身份证入住”; ChinaGuest =中宾价,需提示客人“须持中国身份证、护照入住”; 搜索时传All表示搜索对所有宾客售价一致的产品,此时搜索结果中不包含Chinese、OtherForeigh等类型的产品。如果需要查询所有产品,那么传None。 |
CheckInPersonAmount | 房间入住人数 | Int | Y | 默认为0,结果返回的酒店中将包含至少一个房间的可容纳人数大于等于该值,小于该值的房型将会过滤掉 |
ResultType | 返回信息类型 | String | Y | 可以是逗号分隔的组合。 1.可销售价格信息(房间、RP、促销、增值) 2. 规则信息(预订、Drr、担保规则、预付规则) 3. 酒店基本信息,即返回信息中的Detail字段 4. 当前不可销售的rp(产品计划)不出现在结果里 5. 不返回Rooms、GuaranteeeRules、PrepayRules、AddValues等和产品有关系的对象 7. 返回汇率信息ExchangeRateList 8. 经纬度返回百度坐标 9. 仅返回钟点房 11.返回新担保、新预付规则 一般情况下传入1,2,3,4 |
Position节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
Longitude | 经度 | Decimal | N | 百度坐标系 |
Latitude | 维度 | Decimal | N | 百度坐标系 |
Radius | 半径 | Int | N | 单位:米,最大20000m |
响应结果
根节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
Count | 查询到的酒店总数 | Int | N | |
Hotels | 酒店结果集 | Hotel[] | Y | 包含多个Hotel节点 |
ExchangeRateList | 汇率信息 | ExchangeRate[] | Y | 包含多个ExchangeRate节点 |
Hotel节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
HotelId | 酒店编号 | String(8) | N | |
LowRate | 最低价格 | Decimal | N | 返回的是该酒店中所有符合查询条件的产品的最低价 |
CurrencyCode | 最低价格的货币 | Enum | Y | 参考Currency |
BookingRules | 预定规则 | BookingRule[] | Y | 该酒店下所有的预订规则。应在订单填写页面提示给用户,也可以做到系统规则中约束用户的选择或输入。 包含多个 BookingRule节点 |
GuaranteeRules | 担保规则 | GuaranteeRule[] | Y | 出现规则即表示需要担保。当 isTimeGuarantee和 isAmountGuarantee都等于false时候表示无条件强制担保 包含多个GuaranteeRule节点 |
PrepayRules | 预付规则 | PrepayRule[] | Y | 包含多个 PrepayRule节点 |
GuaranteeRuleExtends(不建议使用) | 新担保规则 | GuaranteeRuleExtend[] | Y | 包含多个GuaranteeRuleExtend节点 |
PrepayRuleExtends(不建议使用) | 新预付规则 | PrepayRuleExtend[] | Y | 包含多个PrepayRuleExtend节点 |
ValueAdds | 增值服务 | ValueAdd[] | Y | 包含多个 ValueAdd节点 |
DrrRules | 促销规则 | DrrRule[] | Y | 搜索接口(list和detail)中的价格都经过了这些规则的计算,仅需将规则的描述提示用户即可。 包含多个 DrrRule节点, DRR例子请参考DrrRule |
Facilities | 酒店设置 | String(50) | Y | 1 免费wifi 2 收费wifi 3 免费宽带 4 收费宽带 5 免费停车场 6 收费停车场 7 免费接机服务 8 收费接机服务 9 室内游泳池 10 室外游泳池 11 健身房 12 商务中心 13 会议室 14 酒店餐厅 15 叫醒服务 16 行李寄存 17 双床 18 大床 |
Distance | 距离 | Decimal | Y | 距离搜索的时候有值 |
PoiName | 距离对应的参照物 | String | Y | V1.14新增。如果有值应该展示告诉用户Distance计算时候的参照点 |
Rooms | 房型列表 | Room[] | Y | 包含多个Room节点 |
Detail | 酒店信息 | Element | Y | 参考Detail节点,ResultType字段包含3时出现 |
Gifts | 送礼活动 | Gift[] | Y | 包含多个 Gifts节点 |
GiftPackages | 礼包套餐 | GiftPackage[] | Y | 参照GiftPackage节点 |
HAvailPolicys | 酒店特殊信息提示 | HAvailPolicy[] | 包含多个 HAvailPolicy节点 V1.04新增. 请把此信息展示给用户,以便用户预订 | |
Products | 简易产品信息 | Product[] | Y | V1.14新增。参见Product 该字段目前不建议使用,产品信息请使用Rooms节点的RatePlans节点 |
HotelFlags | 酒店特惠信息 | String[] | Y | V1.30新增,多个值以逗号分隔,可能出现以下值: BENEFIT-优惠 CASHBACK-返现 SPECIAL_DISCOUNT-立减优惠 SALES_PROMOTION-促销 DAILY_SPECIAL-今夜甩卖 |
BookingRule节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
TypeCode | 规则类型 | Enum | N | NeedNationality务必提供客人国籍 PerRoomPerName您预订了N间房,请您提供不少于N的入住客人姓名 ForeignerNeedEnName此酒店要求外宾务必留英文拼写 RejectCheckinTime几点到几点酒店不接受预订 , 此处校验的是下单时的预订时间 NeedPhoneNo务必提供客人手机号(请加在联系人结点Contact上) |
BookingRuleId | 预订规则编号 | Long | N | RatePlan.BookingRuleIds将与此关联 |
Description | 描述 | String(255) | N | |
DateType | 日期类型 | Enum | Y | BookDay –预订日期(订单的创建日期) |
StartDate | 开始日期 | Date | Y | |
EndDate | 结束日期 | Date | Y | |
StartHour | 每天开始时间 | Time | Y | 针对日期段内每天生效, 当TypeCode 为RejectCheckinTime时表示StartHour到EndHour 酒店不接受预订 |
EndHour | 每天结束时间 | Time | Y |
GuaranteeRule节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
GuranteeRuleId | 担保规则编号 | Long | N | |
Description | 描述 | String(255) | N | 如果担保规则存在,将此字段展示给用户 |
DateType | 日期类型 | Enum | N | CheckInDay-入住日期 StayDay-在店日期 |
StartDate | 开始日期 | date | N | |
EndDate | 结束日期 | date | N | |
WeekSet | 周有效天数 | String(20) | Y | |
IsTimeGuarantee | 是否到店时间担保 | Boolean | N | False:为不校验到店时间 True:为需要校验到店时间 此字段与之后的IsAmountGuarantee字段用法比较特殊,请仔细阅读注意事项中关于这两个字段的说明。 |
StartTime | 到店担保开始时间 | Time | Y | 用于IsTimeGuarantee==true进行检查。 |
EndTime | 到店担保结束时间 | Time | Y | [补充]当EndTime小于StartTime的时候,默认从StartTime到次日6点都需要担保。 |
IsTomorrow | 到店担保的结束时间是否为第二天 | Boolean | Y | false为当天,true为次日 |
IsAmountGuarantee | 是否房量担保 | Boolean | N | False:为不校验房量条件 True:为校验房量条件 如果IsTimeGuarantee和IsAmountGuarantee都为false则为强制担保 |
Amount | 担保的房间数,预定几间房及以上要担保 | Int | Y | 用于IsAmountGuarantee ==true进行检查 |
GuaranteeType | 担保类型 | String | Y | FirstNightCost为首晚房费担保 FullNightCost为全额房费担保 |
ChangeRule | 变更规则 | Enum | Y | 担保规则取消变更规则: NoChange、不允许变更取消 NeedSomeDay、允许变更/取消,需在XX日YY时之前通知 NeedCheckinTime、允许变更/取消,需在最早到店时间之前几小时通知 NeedCheckin24hour、允许变更/取消,需在到店日期的24点之前几小时通知 |
Day | 日期参数 | date | Y | ChangeRule= NeedSomeDay时,对应规则2描述中 “允许变更/取消,需在XX日YY时之前通知” 中的XX日,YY时 |
Time | 时间参数 | Time | Y | |
Hour | 小时参数 | Int | Y | ChangeRule= NeedCheckinTime时,对应规则3描述中 “ 允许变更/取消,需在最早到店时间之前几小时通知”
中的几小时 ChangeRule= NeedCheckin24hour时,对应规则4描述中“ 允许变更/取消,需在到店日期的24点之前几小时通知” 中的几小时 |
PrepayRule节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
PrepayRuleId | 规则编号 | Long | N | |
Description | 描述 | String(255) | N | |
DateType | 日期类型 | Enum | N | CheckInDay:入住日期 |
StartDate | 开始日期 | Date | Y | |
EndDate | 结束日期 | Date | Y | |
WeekSet | 周有效设置 | String(20) | Y | |
ChangeRule | 变更规则 | Enum | N | PrepayNoChange:不允许变更取消; PrepayNeedSomeDay:在到店当日24点前Hour小时前按规则看是否可以免费变更取消(一般是不收罚金),在Hour和Hour2之间按规则存在罚金,Hour2之后不能变更取消; PrepayNeedOneTime:在约定日期时间点(DateNum + Time)前可以免费变更取消 |
Hour | 第一阶段提前的几小时 | Int | Y | 用于PrepayNeedSomeDay |
Hour2 | 第二阶段提前的几小时 | Int | Y | |
DateNum | 具体取消时间日期部分 | date | Y | 用于PrepayNeedOneTime |
Time | 具体取消时间小时部分 | time | Y | |
DeductFeesBefore | 在变更时间点前是否扣费 | Int | Y | 用于 PrepayNeedSomeDay的Hour前扣款类型(一般不收罚金)。DeductFeesBefore为1表示扣费,0表示不扣费。 |
DeductNumBefore | 时间点前扣费的金额或比例 | Decimal | Y | |
CashScaleFirstAfter | 时间点后扣款类型 | Enum | Y | Money:金额 Percent:比例 FristNight:首晚 |
DeductFeesAfter | 在变更时间点后是否扣费 | Int | Y | 用于 PrepayNeedSomeDay的Hour到Hour2之间的扣款类型。DeductFeesAfter为1表示扣费,0表示不扣费。 |
DeductNumAfter | 时间点后扣费的金额或比例 | Decimal | Y | |
CashScaleFirstBefore | 时间点前扣款类型 | Enum | Y | Money:金额 Percent:比例 FristNight:首晚 |
GuaranteeRuleExtend节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
GuaranteeRuleExtendId | 规则ID | Int | N | |
StartDate | 开始时间 | Date | N | 按入住日匹配,入住日在开始时间和结束时间之间,且符合周有效规则,即为命中此规则 |
EndDate | 结束时间 | Date | N | |
WeekSet | 周有效设置 | String | N | |
GuaranteeType | 担保类型 | Int | N | 0:需担保 1:无需担保 2:超时担保 |
NoshowPenalty | 取消费用类型 | Int | Y | 0:跟随取消费用 1:订单全额 计算担保金额用,0时取PenaltyRuleList计算出的罚金列表中罚金的最大值 |
GrtLatestCheckTime | 超时担保时间 | Int | Y | 单位分钟,相对入住日24点的小时偏移量, 范围[0,840] |
PenaltyRuleList | 取消规则列表 | PenaltyWindowType[] | N | 参见PenaltyWindowType节点;解析示例:点此查看 |
PrepayRuleExtend节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
PrepayRuleExtendId | 规则ID | Int | N | |
StartDate | 开始时间 | Date | N | 按入住日匹配,入住日在开始时间和结束时间之间,且符合周有效规则,即为命中此规则 |
EndDate | 结束时间 | Date | N | |
WeekSet | 周有效设置 | String | N | |
NoshowPenalty | 取消费用类型 | Int | Y | 0:跟随取消费用 1:订单全额(目前只有0) |
PenaltyRuleList | 取消规则列表 | PenaltyWindowType[] | N | 参见PenaltyWindowType节点;解析示例:点此查看 |
PenaltyWindowType 节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
PenaltyType | 扣款类型 | Int | N | 0:百分比 1:晚数 2:首晚百分比 |
PenaltyValue | 罚金 | Double | N | PenaltyType 为 0,2时,此值为两位小数。 PenaltyType 为1是,此值使用时会取整,按整数处理。 |
Deadline | 规则时间分割起始点 | String | N | 单位分钟,第一个点为1439280 |
ValueAdd节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
ValueAddId | 增值服务编号 | String(10) | N | |
TypeCode | 业务代码 | String(2) | N | 01-早餐 02-午餐 03-晚餐 04-宽带上网 05-服务费 06-政府税 99-特殊早餐(可能存在不同日期段的多个记录,优先级高于01普通早餐) |
Description | 描述 | String(255) | N | 附加服务描述,代理不想解析的话,可以直接显示该描述 |
IsInclude | 是否包含在房费中 | Boolean | N | false-不包含 true-包含 |
Amount | 包含的份数 | Int | Y | |
CurrencyCode | 货币代码 | Enum | N | 参考Currency |
PriceOption | 单价默认选项 | Enum | Y | Money-金额,Percent-比例,None-无效 |
Price | 单价 | Decimal | Y | 视PriceOption表示金额或比例, 比例值保存的百分数,不是最终的小数, 例如 20%, 则该字段保存为20 |
IsExtAdd | 是否单加 | Boolean | N | 目前只有早餐服务该字段有意义 |
ExtOption | 单加单价默认选项 | Enum | Y | Money-金额,Percent-比例 |
ExtPrice | 单加单价 | Decimal | Y | 视 extOption 不同表示金额或比例值, 比例值保存的百分数,不是最终的小数, 例如 20%, 则该字段保存为20 |
StartDate | 开始日期 | Date | Y | 仅对特殊早餐有效,表示在指定的日期范围内符合星期设置的条件下,该产品的早餐服务使用本条信息;特殊早餐优先于通常的早餐设置。 EndDate是包含该天。 |
DrrRule节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
DrrRuleId | 促销规则编号 | String(10) | N | |
TypeCode | 产品促销规则类型代码 | Enum | N | DRRBookAhead--提前X天预订,每间晚优惠:金额M或比例N% DRRStayPerRoomPerNight--连住X晚起,每间晚优惠:金额M或比例N% DRRStayLastNight--连住X晚起,最后Y晚优惠:金额M或比例N% DRRStayTheNightAndAfter--连住X晚起,第Y晚及以后优惠:金额M或比例N% DRRStayPerLastNight--每连住X晚起,最后Y晚优惠:金额M或比例N% DRRStayWeekDay--在店日期包含周X1……X7,订单按周末价或平日价结算 DRRCheckInWeekDay --在周X1至X7入住,订单按周末价或平日价结算 |
Description | 描述 | String(255) | Y | 该字段可以展示给用户 |
DateType | 日期类型 | Enum | Y | CheckInDay:入住日期 StayDay:在店日期 BookDay:预订日期 |
StartDate | 促销生效开始日期 | Date | Y | |
EndDate | 促销生效结束日期 | Date | Y | |
DayNum | 提前几天 | Int | Y | |
CheckInNum | 连住几天 | Int | Y | |
EveryCheckInNum | 每连住几晚 | Int | Y | |
LastDayNum | 最后几天 | Int | Y | |
WhichDayNum | 第几晚及以后优惠 | Int | Y | |
CashScale | 按金额或按比例来优惠 | Enum | Y | Cash-金额 Money-金额 Cash-金额 Percent-比例 Scale-比例 |
DeductNum | 按金额或比例优惠的数值 | Decimal | Y | 当CashScale为Percent时,该值保存的为百分数,例如30%,则保存为30 |
WeekSet | 星期有效设置 | String(20) | Y | 日期符合Weekset中的周设置,才享受 feetype所对应的价格 仅TypeCode 为DRRStayWeekDay和DRRCheckInWeekDay 的时候使用 |
FeeType | 价格类型 | Enum | Y | WeekendFee -周末价格 WeekdayFee -平日价格 |
Room节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
RoomId | 展示房型编码 | String(10) | N | V1.10新增,仅用于关联静态信息 |
Name | 房型名称 | String(50) | N | |
RatePlans | 产品信息 | RatePlan[] | Y | 包含多个RatePlan节点 |
RatePlan节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
RatePlanId | 产品编号 | Long | N | |
RatePlanName | 产品名称 | String(50) | N | |
Status | 销售状态 | Boolean | N | 该产品产品、价格是否有效的状态,这里为false就表示这个产品不能卖了。如果为true,那么还需要依次判断NightlyRate数组中每个节点的状态,只有这些全部都为true,这个产品才可售。 false--不可销售(可能是产品无效、部分日期缺少价格)true--可销售 |
RoomTypeId | 销售房型编号 | String(4) | N | 用于hotel.order.create中的入参RoomTypeId |
SuffixName | 供应商房型附加名称 | String(50) | Y | 房型信息的补充说明 |
HotelCode | 供应商酒店编码 | String(10) | N | |
CustomerType | 客人类型 | Enum | Y | All=统一价; Chinese =内宾价,需提示客人“须持大陆身份证入住”; OtherForeign =外宾价,需提示客人“须持国外护照入住”; HongKong =港澳台客人价,需提示客人“须持港澳台身份证入住”; ChinaGuest =中宾价,需提示客人“须持中国身份证、护照入住”; |
guestType | 适用人群 | String | Y | 宾客类型的适用人群: 0:不限 1:持中国身份证的居民 2:持回乡证的港澳人士 3:持台胞证的台湾人士 4:持中国护照的侨胞 5:持大陆工作证/居留许可的外籍人士 6:持非中国护照的外籍人士 7:其他 |
guestTypeExtendCh | 其他 | String | Y | 适用人群中其他的内容 |
CurrentAlloment | 房量限额 | Int | Y | 入住时间内不能超售的最小值。当大于0小于5时,表示目前仅剩的房量;0表示房量充足 |
ConfirmDurationTime | 预计确认时长 | Int | Y | 产品的预计确认时长,小于等于0代表未知确认时长 |
InstantConfirmation | 是否支持即时确认 | Boolean | Y | 表示这个产品是否支持即时确认。最终的订单是否是即时确认还需查看创建订单接口的返回值(推荐)或者调用即时确认接口(不推荐) |
PaymentType | 付款类型 | Enum | N | SelfPay-前台现付、Prepay-预付 具体信息查看使用说明 |
BookingRuleIds | 对应的预订规则编号 | String(100) | Y | 使用这些Id到上面对应的规则数组里查找对应的规则 |
GuaranteeRuleIds | 对应的担保规则编号 | String(100) | Y | |
PrepayRuleIds | 对应的预付规则编号 | String(100) | Y | |
GuaranteeRuleExtendIds | 对应的新担保规则ID | String(100) | Y | 关联的新担保规则编号,多个编号时以逗号分隔。只有PaymentType为SelfPay时需要关注。 |
PrepayRuleExtendIds | 对应的新预付规则ID | String(100) | Y | 关联的新预付规则编号,多个编号时以逗号分隔。只有PaymentType为Prepay时需要关注。 |
DrrRuleIds | 对应的促销规则编号 | String(100) | Y | |
ValueAddIds | 对应的增值服务编号 | String(100) | Y | |
GiftIds | 礼品ID | String(100) | Y | 请查找Gifts |
ProductTypes | 产品特性类型 | String(20) | Y | 版本1.08新增。可逗号分隔,目前取值: 3-限时抢购 4-钟点房 5-手机专享 25-床位房(床位房类型此处已无效,判断床位房请解析RatePlanName或者Room节点的Name字段,其中只要有一个字段包含“床位”字样即为床位房) |
IsLastMinuteSale | 是否今日特价 | Boolean | Y | IsLastMinuteSale == true的时候再判断StartTime和EndTime |
StartTime | 今日特价开始时间 | Time | Y | 每天可以销售的开始时间 |
EndTime | 今日特价结束时间 | Time | Y | 每天可以销售的结束时间 |
MinAmount | 预定最少数量 | Int | Y | 默认值:1 |
MinDays | 最少入住天数 | Int | Y | 默认值:1 |
MaxDays | 最多入住天数 | Int | Y | 默认值:365 |
TotalRate | 总价 | Decimal | Y | 已经通过DRR的计算可以直接显示给客人。价格为-1表示不能销售 |
AverageRate | 日均价 | Decimal | Y | |
AverageBaseRate | 促销前的日均价 | Decimal | Y | 版本1.08新增 |
CurrencyCode | 货币 | Enum | Y | 参考Currency |
Coupon | 优惠券 | Decimal | Y | 暂无数据 |
NightlyRates | 每天价格数组 | NightlyRate[] | Y | 包含多个 NightlyRate节点 |
NeedIdNo | 是否需要提供身份证号 | Boolean | Y | 指该RatePlan在下单的时候,是否需要传入入住人的身份证号信息,如果该字段不为空且为true,则在成单时必须传入身份证号(将来废弃,新字段请参考身份信息验证类型【Identification】) |
Identification | 身份信息验证类型 | Int | N | 0-无特殊验证要求(默认值) 1-整个订单至少传一个身份证 2-订单中每个房间至少传一个证件 3-订单中每个房间至少传一个身份证 4-每个客人传一个身份证 5-整个订单至少传一个身份证且需预订本人入住 (后续可能会继续增加其他验证类型,建议接入时将非文档中给出类型的产品做过滤处理) |
InvoiceMode | 预付产品发票模式 | String | N | 仅用于预付产品的发票开具模式。 版本V1.11新增 Hotel -- 酒店开具 Elong -- 艺龙开具 |
BookingChannels | 产品可以展示销售的渠道 | String | Y | v1.23新增,逗号分隔的数字列表(如果仅出现3表示仅在手机端销售): 1---线上(普通的PC访问的Web) 2---线下(呼叫中心、门店) 3---手机(Mobile App、H5) |
isPriceLimittedProduct | 是否为限价产品 | Boolean | Y | 表示本RatePlan是否为限价产品,限价产品必须按照艺龙给出的售价进行售卖,即按照TotalRate指定的价格卖给客人 false --- 非限价 true --- 限价 |
CooperationType | 酒店签约类型 | int | Y | v1.27 1为直签,2为非直签,0为未知 |
earliestToliveTime | 可住开始时间 | String(6) | Y | V1.32新增。 1、钟点房产品特有字段。 2、可住时长stayTime为常量,实际客人的可住时长需要代理根据可住结束时间减去当前时间进行计算 3、建议实际可住时长不足一小时时不要再展示给客人 |
latestToliveTime | 可住结束时间 | String(6) | Y | |
stayTime | 可住时长 | String(2) | Y | |
xStayPeopleNum | 可入住人数 | String | Y | 房型补充说明 |
xStaySex | 可入住性别 | String | Y | |
xBedType | 床型 | String | Y | |
xFloor | 楼层 | String | Y | |
xOrientation | 朝向 | String | Y | |
xUserDefined | 自定义说明 | String | Y |
NightlyRate节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
Date | 当天日期 | Date | N | |
Member | 会员价 | Decimal | N | 已经通过DRR的计算可以直接显示给客人。价格为-1表示不能销售。 |
Cost | 结算价 | Decimal | N | 仅用于结算价模式下的预付产品可用,非结算价模式下返回-1 |
Status | 库存状态 | Boolean | N | 表示当天库存是否可用 |
AddBed | 加床价 | Decimal | Y | -1表示不能加床 |
BreakfastCount | 早餐份数 | int | Y | v1.25 |
coupon | 每日优惠 | Decimail | Y | v1.29(前台现付是返现,预付是返现或立减) |
Detail节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
HotelName | 酒店名称 | String(100) | N | |
StarRate | 挂牌星级 | Int | N | 此为酒店对外的挂牌星级(国家旅游局规定),0-无星级;1-一星级;2-二星级;3-三星级;4-四星级;5-五星级。当为0时对外显示可用Category的值,但请进行图标区分。 |
Category | 艺龙推荐级别 | Int | N | 艺龙推荐星级,而非酒店挂牌星级。对应值含义为:0,1,2:客栈;3:舒适;4:高档;5:豪华;A:公寓 |
Latitude | 纬度 | String(20) | Y | 默认返回Google坐标系。 当ResultType中加入8后,输出为百度坐标。 其他坐标系请联系对应的厂商获取转换方法。 |
Longitude | 经度 | String(20) | Y | |
Address | 地址 | String(255) | Y | |
Phone | 前台电话 | String(20) | Y | |
ThumbNailUrl | 酒店图片 | String(255) | Y | 小图(120x120, png), 入参ResultType传入3时返回,可以将该返回的链接上120_120替换为70_70获取更小的图片, 也可以替换为350_350获取更大的图片 |
City | 城市ID | String(20) | Y | |
CityName | 城市名称 | String(50) | Y | V1.16新增。为空时候使用ID和GEO数据进行关联。 |
District | 行政区ID | String(20) | Y | |
DistrictName | 行政区名称 | String(50) | Y | V1.16新增。为空时候使用ID和GEO数据进行关联。 |
BusinessZone | 商业区ID | String(20) | Y | |
BusinessZoneName | 商业区名称 | String(50) | Y | V1.16新增。为空时候使用ID和GEO数据进行关联。 |
Review | 评价 | Element | Y | 参照 Review节点 |
Features | 特色介绍 | String(max) | Y | |
GeneralAmenities | 设施服务 | String(max) | Y | |
Traffic | 交通状况 | String(max) | Y |
Review节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
Good | 好评数 | Int | N | |
Poor | 差评数 | Int | N | |
Count | 评论总数 | Int | N | |
Score | 评论分数 | String(10) | Y | 列表接口此字段为评论分数,【0-5】小数,一般是4.5 4.8 5.0之类的,与详情接口同名字段意义不同 |
ExchangeRate节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
CurrencyCode | 货币编码 | String | N | 参考Currency节点 |
Rate | 汇率值 | Decimal | N | 对应货币转换成人民币的汇率 |
NightlyRateWithBreakfast节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
Date | 当天日期 | Date | Y | |
Member | 会员价 | Decimal | Y | 已经通过DRR的计算可以直接显示给客人.。价格为-1表示不能销售。 |
Cost | 结算价 | Decimal | Y | 仅结算价模式下可用 |
Status | 库存状态 | Boolean | N | 表示当天库存是否可用 |
AddBed | 加床价 | Decimal | Y | -1表示不能加床 |
BreakfastAmount | 包含早餐的份数 | Int | N | |
ExtraBreakfastPrice | 单加早餐信息 | Decimal | Y | 存在数额并且大于0表示可以单加早餐,大于0小于1表示单加早餐金额对应饭费的比率,大于等于1表示单加早餐的金额 |
Basis | 原始价格 | Decimal | Y | 未经过DRR计算过的原始价格,入参Options包含5的时候返回 |
BreakfastCount | 早餐份数 | int | Y | v1.25 |
coupon | 每日优惠 | Decimail | Y | v1.29(前台现付是返现,预付是返现或立减) |
HotelFilterType节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
FilterType | 筛选TypeId | Int | N | 通过hotel.filter接口获取到的最小子节点的typeId |
FilterId | 筛选项Id | Int | N | 通过hotel.filter接口获取到的最小子节点的Id |
当FilterType=1031 且 FilterId=11031 需要筛选钟点房时,还需要ResultType传入9。
输入参数示例
https://api-test.elong.com/rest?timestamp=1489721030&format=json &method=hotel.list&signature=5b293eddc2fa89fe560e62aeba6b7ee4 &user={userid}&data={"Version":"1.28","Local":"zh_CN", "Request":{"ArrivalDate":"2017-3-18","DepartureDate":"2017-3-19", "CityId":"0101","PageIndex":1,"PageSize":10,"ResultType":"1,2,4","PaymentType":"All"}}
输出参数示例
{ "Code":"0", "Result":{ "Count":13, "Hotels":[ { "HotelId":"90101033", "LowRate":200.0, "CurrencyCode":"RMB", "Distance":0.0, "BookingRules":[ { "BookingRuleId":70660, "TypeCode":"NeedPhoneNo", "DateType":"BookDay", "StartDate":"2013-07-05T00:00:00 08:00", "EndDate":"2063-07-05T00:00:00 08:00", "StartHour":"00:00:00", "EndHour":"23:59:00", "Description":"酒店要求客人务必提供手机号" } ], "GuaranteeRules":[ ], "PrepayRules":[ { "PrepayRuleId":1, "DateType":"CheckInDay", "StartDate":"2017-03-18T00:00:00 08:00", "EndDate":"2017-03-19T00:00:00 08:00", "WeekSet":"1,2,3,4,5,6,7,", "ChangeRule":"PrepayNoChange", "CashScaleFirstAfter":"FristNight", "CashScaleFirstBefore":"FristNight", "DateNum":"2017-03-17T00:00:00 08:00", "Time":"", "DeductFeesAfter":1, "DeductFeesBefore":0, "DeductNumAfter":0.0, "DeductNumBefore":0.0, "Hour":0, "Hour2":0, "Description":"预付规则:在17.03.18 到17.03.19期间入住,需要提供信用卡预付全额房费。一经预订成功不可变更/取消。" } ], "ValueAdds":[ ], "DrrRules":[ ], "Rooms":[ { "RoomId":"0016", "Name":"标准间", "RatePlans":[ { "Status":true, "CustomerType":"All", "CurrentAlloment":0, "InstantConfirmation":false, "ProductTypes":"3", "IsLastMinuteSale":false, "StartTime":"00:00:00", "EndTime":"23:59:00", "TotalRate":200.0, "AverageRate":200.0, "AverageBaseRate":200.0, "CurrencyCode":"RMB", "Coupon":0.0, "NightlyRates":[ { "Member":200.0, "Cost":-1.0, "Status":true, "AddBed":-1.0, "Date":"2017-03-18T00:00:00 08:00", "BreakfastCount":0, "coupon":0.0 } ], "BookingRuleIds":"70660", "PrepayRuleIds":"1", "ValueAddIds":"", "RoomTypeId":"0016", "HotelCode":"90101033", "InvoiceMode":"Elong", "BookingChannels":"1,2,3", "CooperationType":1, "RatePlanId":478789, "RatePlanName":"不含早(代理预付)", "MinAmount":1, "MinDays":1, "MaxDays":365, "PaymentType":"Prepay" } ] } ], "Gifts":[ ], "HAvailPolicys":[ ] } ] }, "Guid":"cd9620d8-d188-45e2-9938-e6200ad303ab" }
注意事项
1.InvoiceModel字段为Elong时,不代表一定由艺龙开具发票。只有预付产品才有可能为Elong,预付产品如果接入方自己不想要开发票,可以联系商务开通代开发票服务,此时才是艺龙开具发票,如果不开通代开服务,则由接入方自己开具发票。
2.入参中CustomerType字段传入All表示搜索对所有宾客售价一致的产品,此时搜索结果中不包含CustomerType类型为Chinese、OtherForeigh等类型的产品。常见问题是,调用hotel.list时传入CustomerType为All,返回结果中没有产品,但是调用hotel.detail查询该酒店时发现有产品。此时请注意hotel.detail返回的产品中是没有CustomerType为All类型的产品的。如果需要查询所有产品,那么调用hotel.list时CustomerType传None。
3.Product节点和Room节点是两套体系,数据存在重复,只返回其中一套即可。ResultType字段不包含6,返回Room节点,传入6则仅返回Product节点。一般使用Room节点。
4.担保规则(GuaranteeRule节点)使用说明:展示的时候只需要展示描述字段,不需要进行其他处理。在填写订单时根据以下判断是否需要提交支付信息。调用hotel.list和hotel.detail这两个搜索接口的时候若出现了担保规则,则有可能需要担保的(但也可能根据客人选择的条件判断后没有满足条件的担保规则,那么不需要担保),如果没有出现担保规则,则是不需要担保的。担保规则筛选顺序:先判断IsAmountGuarantee和IsTimeGuarantee字段,再根据结果来决定最后判断的字段。IsAmountGuarantee和IsTimeGuarantee字段的详细判断如下:
IsAmountGuarantee | IsTimeGuarantee | 说明 |
---|---|---|
FALSE | FALSE | 无条件担保订单,即必须担保,不需要判断其他条件 |
TRUE | FALSE | 房量担保,检查Amount |
FALSE | TRUE | 到店时间担保,检查StartTime 和EndTime |
TRUE | TRUE | 房量担保 或 到店时间担保 。需要检查Amount、StartTime和EndTime,满足一个条件就需要担保 |
常见错误码
错误码 | 解释 | 解决方法 |
---|---|---|
H000005 | 入住日期不能为空 | 可能是日期格式错误导致的,支持的日期时间格式:"yyyy-MM-dd" |
H000006 | 离店日期不能为空 | 可能是日期格式错误导致的,支持的日期时间格式:"yyyy-MM-dd" |
H002004 | 没有搜索预付产品权限 | 权限不够,联系商务解决。 |
H004001 | 无预付产品权限 | 权限不够,联系商务解决。 |
H100999 | 搜索异常 | 这种有可能是底层问题,需要重试1-2次,不要无限重试 |