现付上线要求– B2C

现付上线要求– B2C

下面的上线要求适用于所有合作伙伴的B2C项目集成模式,例如您的最终用户直接与您的开发站点互动。如中文内容与英文原文不同,请以英文内容为准:https://support.ean.com/hc/en-us/articles/207493079


1. 全局要求

1.1 合作伙伴不允许描述自己为酒店资源的供应方

"在任何描述您业务形式的地方 —— 您的技术项目、相关网站、宣传资料等 —— 在任何使用EAN资源的情况下,都不能描述自己为酒店资源的供应方。
这包括任何独家销售的提示(例如:“我们拥有独一无二的酒店资源”)或独家价格提示(例如:“网上最低价格”)。

您的品牌形象必须明确地传递告知用户您在使用EAN资源时是这些资源的分销商,而不是供应商。"



1.2 不使用Expedia或EAN的名字或图标

在没有Expedia法务部门和相关部门的允许下,不能在合作伙伴的站点中以任何目的使用Expedia 或EAN名字或图标。如需例外,须将批准函附在上线记录中。

Example



1.3 合作伙伴为订单提供了真实入住的旅客姓名

EAN的订单都必须以实际入住的旅客姓名提交。这意味着在API的下单请求中(booking request body),在每个Room 节点中的元素 firstName 和 lastName 中都必须如实登记届时办理入住登记的旅客的姓名。

Code Samples
REST
……
&room1=2
&room1FirstName={actual traveller's name}
&room1LastName={actual traveller's name}
&room1BedTypeId=23
&room1SmokingPreference=NS
……
XML
……
<RoomGroup>
<Room>
<numberOfAdults>2</numberOfAdults>
<firstName>{actual traveller's name}</firstName>
<lastName>{actual traveller's name}</lastName>

<bedTypeId>23</bedTypeId>
<smokingPreference>NS</smokingPreference>
</Room>
</RoomGroup> ……
Example



1.4 展示预订条款的链接入口并指向指定的页面

您必须在您自己网站的预订条款和政策中添加链接指向EAN的预订条款和政策,这个链接需要放置在容易查看到的地方,例如您的网站条款的顶部。目标页面地址: 
英文:http://developer.ean.com/terms/en/
中文:http://developer.ean.com/terms/zh/

Example



1.5 不更改API传递的价格和预订条款

价格和预订相关的信息会真实地描述入住所需的费用以及对应的服务、设施,您不能更改这些内容,当然也不能隐匿或使用模糊的话语替代。在不改变原文含义的基础上,可以对这些内容进行调整。例如将“游泳池”改成“泳池”、“无线互联网”改成“WiFi”。不要在响应报文内容的基础上自己添加内容。EAN 不会承担用户自行更改内容与API信息不一致而引发的责任。

Example



1.6 清晰地展示客户服务联系电话以及用户在线自助服务工具的入口

清晰地展示您自己的客户服务联系电话,或EAN提供的代理客服联系方式。您也必须展示用户在线自助服务工具的入口以便用户可以直接进行订单查询。

Examples



1.7 恰当地使用和展示信用卡相关内容

合作伙伴必须根据 PCI (Payment Card Industry) 的指导进行请求、处理和储存用户的信用卡信息。这些指导的完整信息可以通过这个网站获取:official PCI Security Standards web site. 为了帮助用户在合作过程中满足PCI要求的大部分规则,EAN 在这个页面为合作伙伴提供了专项指导: developer.ean.com/docs/credit-card通过上述指导,您必须确保:
1/ CSV 在下单过程中必须登记,
2/卡号在展示和存储时必须截断一部分,
3/SSL 加密技术必须应用在所有预订相关的页面中,
4/遵守信用卡品牌均势的要求

1.8 适当的合作伙伴需要提供PCI认证

当需 EAN 处理用户信用卡信息时,必须提供evidence of PCI compliance,例如Attestation of Compliance (AOC)。EAN 的合作伙伴必须使用 PCI Security Standards Council 的 Self-Assessment Questionnaire 文件 "SAQ D - Merchants" 来获取有效的 AOC。您可以阅读SAQs的说明及指南,在 official PCI Security Standards Document Library 找到"SAQ D - Merchants" 文件,或将 SAQ D - Merchants 这个文件下载为 PDFWord 格式。中文版本链接:https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-2_AOC_Merchant_3_zh-CN.pdf

1.9 合作伙伴必须支持供应商取消流程

酒店可以在最多72小时内决定接受或拒绝预定,所以在该时间窗口内,可能产生预定取消。查看我们的现付集成指南(Hotel Collect Integration Guide)了解技术上如何正确处理并报告供应商取消的情况。



1.10 使用任何TripAdvisor内容时,提供完成的TripAdvisor协议

如果您意图使用EAN API中提供的TripAdvisor信息https://dev.ean.com/docs/supplemental-services/tripadvisor/),必须承诺遵守TripAdvisor的要求https://dev.ean.com/tripadvisor-guidelines/)以获得使用授权。该承诺需要通过电邮至 support@ean.com 或以书面的方式,在提交验收申请或在上线之后任意时候进行。在授权同意后,任何时候TripAdvisor都保留停止及移除访问TripAdvisor内容的权利。

2. 搜索页面

2.1 当允许在订单中登记儿童时,恰当地提示用户登记儿童的年龄

如果您的应用(网站、系统)允许儿童随行,您就必须对所有现付的酒店允许用户单独选定儿童人数及每位儿童的年龄。这些信息可以通过 numberOfChildren 和 childAges 节点传递(示范如下)。当用户指定儿童之后,API 响应消息就会包含指定年龄、人数适用的限制、人头费、加床费、婴儿床费用等。这些信息必须在用户搜索及结账前清楚地向用户提示。每家酒店对儿童年龄范围的定义各不相同。通常是17岁或更小的旅客会被定义为儿童。部分酒店不允许18岁以下旅客入住。

Code Sample
REST
list? 
apiKey=#####
&cid=#####
&sig=####################
&customerIpAddress=#####
&customerUserAgent=######
&customerSessionId=#####
&minorRev=##
&locale=en_US
&currencyCode=USD
&city=Seattle
&stateProvinceCode=WA
&countryCode=US
&arrivalDate=09/04/2015
&departureDate=09/05/2015
&room1=1,3,6

XML
 
<HotelListRequest>
    <city>Seattle</city>
    <stateProvinceCode>WA</stateProvinceCode>
    <countryCode>US</countryCode>
    <arrivalDate>08/01/2015</arrivalDate>
    <departureDate>08/03/2015</departureDate>
    <RoomGroup>
      <Room>
        <numberOfAdults>2</numberOfAdults>
        <numberOfChildren>2</numberOfChildren>
        <childAges>3,6</childAges>
      </Room>
    </RoomGroup>
</HotelListRequest>
Example



3. 酒店选择页面

3.1 如果展示价格明细,就必须清楚地列明所有费用

在酒店选择页面展示价格明细不是强制要求的。如果您决定在这个页面就展示价格明细,您就必须清楚地列明通过 Surcharges 和 HotelFees 节点返回的所有费用。请把 HotelFees 提示的费用单列展示,因为这些费用会酒店入住或离店时被要求直接支付给酒店(不是EAN或当地政府来收取)。房费可以展示每晚明细,也可以只展示一个不含税的房费总价。价格明细须列出不含税和服务费的房价nightly rates(明细或总价)、附加费Surcharges、酒店在现场额外收取的费用HotelFee 和 应预先支付的总价。

如果您选择只展示房间总价,可以显示为每间房间每晚的价格,也可以是所选时期的未含税总价。
Code Samples

REST
  ……
  
"Surcharges": {
      "@size": "1",
      "Surcharge": {
  		"@type": "TaxAndServiceFee",
		"@amount": "64.65"
	    }}    },
"nonRefundable": false,
	"HotelFees":
	 {"@size": "1","HotelFee":
	  {    "@description": "MandatoryTax",
	      "@amount": "57.11"}
	      },
	      "rateType": "DirectAgency",
	      "currentAllotment": 1}
      ……
      
XML
  ……
  <NightlyRate baseRate="545.82" rate="545.82" promo="false" />
  </NightlyRatesPerRoom>
  <Surcharges size="1">
  <Surcharge type="TaxAndServiceFee" amount="64.65" />
  </Surcharges></ChargeableRateInfo>
  <nonRefundable>false</nonRefundable>
  <HotelFees size="1">
  <HotelFee description="MandatoryTax" amount="57.11" />
  </HotelFees>
  <rateType>DirectAgency</rateType>
  <currentAllotment>1</currentAllotment>
  </RateInfo>
  ……
  

4. 酒店详情/房型选择页面

4.1 税款和费用分列展示

如果您在房型选择页面展示费用明细,那么通过 TaxAndServiceFee 提示的费用必须单列展示在所有需要提示税费以及(或)报价的地方,例如预付酒店的房型选择页面、订单填写页面和订单确认页面。当提示预付酒店资源的任何税款和服务费总和时,需要使用以下法律术语进行标注。基于酒店面向的销售市场,而不是用户的位置。 欧洲: "Tax Recovery Charges". 其他地区: "Tax Recovery Charges and Service Fees"

Example (Europe)



4.2 销售税在需要时单列展示

如果您在房型选择页面展示费用明细,当 salesTax通过 Surcharges 提示时,在您的收费明细中单列展示这些内容。根据当地的法律,这些项目是当地政府征收的,且必须展示。

Code Samples
Example XML

<Surcharges size="2">
<Surcharge type="SalesTax" amount="126.62" />
<Surcharge type="TaxAndServiceFee" amount="133.62" />
</Surcharges>
Example REST

"Surcharges": {
"@size": "2",
"Surcharge": [
{
"@type": "SalesTax",
"@amount": "126.62"

}, {
"@type": "TaxAndServiceFee",
"@amount": "133.62"
} …
Example:



4.3 每个房间都提示了床型信息

当availability responses中的BedTypes没有提示或只有一个值时,展示每个房间的 rateDescription 或 roomTypeDescription 即可。当 BedTypes 提示了多个选项时,向用户展示这些选项并允许他们选择床型偏好。在下单请求中使用 bedTypeId 登记用户选择的BedType ID。当同一房间的床型有所选择时,您还必须提示旅客:该选择会在旅客入住时会由酒店视实际情况量安排,但不保证一定会被满足。

Code Samples
Single Bed Type Example XML

<rateCode>205109735</rateCode>
<roomTypeCode>201048862</roomTypeCode>
<rateDescription>Deluxe Room, 2 Single Beds</rateDescription>
<roomTypeDescription>Deluxe Room, 2 Single Beds</roomTypeDescription>

<supplierType>E</supplierType>
<propertyId>18813</propertyId>
<BedTypes size="1">
<BedType id="43">
<description>2 single beds</description>
</BedType>

</BedTypes>

Multiple Bed Type Example XML
Note the rate/room type descriptions do not contain a bed type description.
<rateCode>204975819</rateCode>
<roomTypeCode>201019993</roomTypeCode>
<rateDescription>Executive Room</rateDescription>
<roomTypeDescription>Executive Room</roomTypeDescription>

<supplierType>E</supplierType>
<propertyId>18813</propertyId>
<BedTypes size="2">
<BedType id="14">
<description>1 king bed</description>
</BedType>
<BedType id="43">
<description>2 single beds</description>
</BedType>

</BedTypes>
Single Bed Type Example REST
"rateCode": 484072,
"roomTypeCode": 198058,
"rateDescription": "Deluxe Room, 1 King Bed",
"roomTypeDescription": "Deluxe Room, 1 King Bed",

"supplierType": "E",
"propertyId": 5900,
"BedTypes": {
"@size": "1",
"BedType": {
"@id": "14",
"description": "1 king bed"

}
},
Multiple Bed Type Example REST
"rateCode": 206423129,
"roomTypeCode": 426739,
"rateDescription": "Family Apartment sleeps 6",
"roomTypeDescription": "Family Apartment sleeps 6",

"supplierType": "E",
"propertyId": 914263,
"BedTypes": {
"@size": "2",
"BedType": [
{
"@id": "69",
"description": "1 double and 1 sofa bed"
}, {
"@id": "70",
"description": "2 twin and 1 sofa bed"

}
]
},



4.4 展示入住提示

当 checkInInstructions 通过房型供应状态响应提示时,就必须为每一个提示的房型进行展示。这个信息会包含至关重要的细节,例如入住登记时会产生的费用、非营业时间的入住方法等。永远只使用房型供应状态响应(room availability response)获取的结果 —— hotel info 或 static database 的 check-in instruction 内容可能会不准确。

Code Samples
REST
{ "HotelRoomAvailabilityResponse": {
     "@size": "3",
     "customerSessionId": "0ABAAAAE-48DC-3914-D0B2-A769E3903921",
     "hotelId": 127092,
     "arrivalDate": "09/03/2015",
     "departureDate": "09/04/2015",
     "hotelName": "The Edgewater - A Noble House Hotel",
     "hotelAddress": "Pier 67, 2411 Alaskan Way",
     "hotelCity": "Seattle",
     "hotelStateProvince": "WA",
     "hotelCountry": "US",
     "numberOfRoomsRequested": 1,
     "checkInInstructions": "<p><b>Know Before You Go</b> <br /><ul> 
<li>Children 18 years old and younger stay free when occupying the parent or guardian's room,
 using existing bedding. </li> </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits
 are charged by the property at time of service, check-in, or check-out. </p> <ul> 
<li>Breakfast fee: USD 22 per person (approximately)</li> <li>Fee for in-room wireless 
Internet: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> 
<li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p>",
"HotelRoomResponse": [……
……
XML
<ns2:HotelRoomAvailabilityResponse xmlns:ns2="http://v3.hotel.wsapi.ean.com/" size="5">
 <customerSessionId>0ABAAA4D-082E-AA91-4D02-B8BAE1397B78</customerSessionId>
 <hotelId>127092</hotelId>
 <arrivalDate>09/03/2015</arrivalDate>
 <departureDate>09/04/2015</departureDate>
 <hotelName>The Edgewater - A Noble House Hotel</hotelName>
 <hotelAddress>Pier 67, 2411 Alaskan Way</hotelAddress>
 <hotelCity>Seattle</hotelCity>
 <hotelStateProvince>WA</hotelStateProvince>
 <hotelCountry>US</hotelCountry>
 <numberOfRoomsRequested>1</numberOfRoomsRequested>
 <checkInInstructions><p><b>Know Before You Go</b> <br /><ul> <li>Children 18 years old and
 younger stay free when occupying the parent or guardian's room, using existing bedding. </li>
 </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits are charged by the property 
at time of service, check-in, or check-out. </p> <ul> <li>Breakfast fee: USD 22 per person 
(approximately)</li> <li>Fee for in-room wireless Internet: USD 9.95 (for 24 hours, 
rates may vary)</li> <li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours,
 rates may vary)</li> <li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> <li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p></checkInInstructions> <HotelRoomResponse>



4.5 不可退改价格的特殊展示

不可退改价格会通过响应报文的 nonRefundable=true 进行提示。如果这个节点反映的情况和其他内容有冲突,始终以此为准。此类预订一旦生成,无论何种原因取消订单,酒店就无法进行任何退款。当 nonRefundable=true 在酒店选择或房型选择的响应中进行了提示,明确地对对应的房型进行突出提示 —— 房型选择页面在房型层面提示,酒店选择页面在部分结果上特别标注说明可能只是部分房型不可退改。对于限期退改的价格,参阅我们的指南 cancelPolicyInfo array 来计算预估取消费用。

Code Sample
REST
nonRefundable returns between the CancelPolicyInfoList array and rateType.
"CancelPolicyInfoList": {
[array contents omitted for example]
},
"nonRefundable": true,
"rateType": "DirectAgency",
"promoType": "Standard",
"currentAllotment": 13,
"guaranteeRequired": false,
"depositRequired": true,
XML
nonRefundable returns between CancelPolicyInfoList and HotelFees.
  …
  </CancelPolicyInfo>
</CancelPolicyInfoList>
<nonRefundable>true</nonRefundable>
<HotelFees size="1">
<HotelFee description="MandatoryTax" amount="56.99" />
</HotelFees> …

4.6 当specialCheckInInstructions返回时需要展示其内容

当availability call返回specialCheckInInstructions时,需要为每个房间展示该内容。该部分信息包含了在酒店入住时的关键信息,且未包括在checkInInstructions中。例如,要求旅客通知酒店预计的抵达时间,入住登记处与客房分处不同地点,提示用户查收酒店通过电子邮件另外发出的入住提示。请将这些信息与之前的checkInInstructions的内容在同一地方展示。

Code Samples
REST
……
"checkInInstructions": "<p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p>",
"specialCheckInInstructions": "The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.", ……
XML
…… <checkInInstructions><p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p></checkInInstructions>
<specialCheckInInstructions>The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.</specialCheckInInstructions> ……
Example

5. 下单页面

5.1 敏感数据都使用了SSL加密技术处理

当传递或发送敏感数据时,您必须使用SSL技术进行加密。敏感数据包括旅客姓名、电话号码或电子邮箱地址、支付用卡信息、以及订单(行程单)收据和确认页面。如果用户的浏览器不能执行加密连接也能发送或接收信息,那么就表明SSL没有正确部署


Example
A valid SSL certificate as viewed in a browser



5.2 必须清楚地列明所有费用

在下单页面展示价格明细是强制要求的。您必须清楚地列明通过 Surcharges 和 HotelFees 节点返回的所有费用。请把 HotelFees 提示的费用单列展示,因为这些费用会酒店入住或离店时被要求直接支付给酒店(不是EAN或当地政府来收取)。房费可以展示每晚明细,也可以只展示一个不含税的房费总价。价格明细须列出不含税和服务费的房价nightly rates(明细或总价)、附加费Surcharges、酒店在现场额外收取的费用HotelFee 和 应预先支付的总价。

Code Samples

REST
  ……
  
"Surcharges": {
      "@size": "1",
      "Surcharge": {
  		"@type": "TaxAndServiceFee",
		"@amount": "64.65"
	    }}    },
"nonRefundable": false,
	"HotelFees":
	 {"@size": "1","HotelFee":
	  {    "@description": "MandatoryTax",
	      "@amount": "57.11"}
	      },
	      "rateType": "DirectAgency",
	      "currentAllotment": 1}
      ……
      
XML
  ……
  <NightlyRate baseRate="545.82" rate="545.82" promo="false" />
  </NightlyRatesPerRoom>
  <Surcharges size="1">
  <Surcharge type="TaxAndServiceFee" amount="64.65" />
  </Surcharges></ChargeableRateInfo>
  <nonRefundable>false</nonRefundable>
  <HotelFees size="1">
  <HotelFee description="MandatoryTax" amount="57.11" />
  </HotelFees>
  <rateType>DirectAgency</rateType>
  <currentAllotment>1</currentAllotment>
  </RateInfo>
  ……
  
Example



5.3 税款和费用分列展示

通过 TaxAndServiceFee 提示的费用必须单列展示在所有需要提示税费以及(或)报价的订单填写页面。当提示现付酒店资源的任何税款和服务费总和时,需要使用以下法律术语进行标注。基于酒店位置,而不是用户的位置。欧洲: "Tax Recovery Charges", 其他地区: "Tax Recovery Charges and Service Fees"



5.4 清楚地展示需要支付的总价

Example



5.5 合作伙伴服务费或订单处理费必须分列清楚地展示

如果您想用户收取服务费或订单处理费,必须明确地提示用户这些费用是您收取的,不是EAN收取的额外费用(例如,不是因为住宿产生的费用)。这类费用不能隐含在现有的费用明细内。合作伙伴的订单处理费或服务费不能和其他费用混算且必须单列明细。

Example:



5.6 城市税、强制性额外收费必须单列明细

当响应报文中的 MandatoryTax 提示了费用,在您的收费明细中单列这些费用。这些费用将在旅客到达酒店后收取,不是普通税费的一部分。

Example



5.7 销售税在需要时单列展示

当 salesTax通过 Surcharges 提示时,在您的收费明细中单列展示这些内容。根据当地的法律,这些项目是当地政府征收的,且必须展示。

Code Samples
Example XML

<Surcharges size="2">
<Surcharge type="SalesTax" amount="126.62" />
<Surcharge type="TaxAndServiceFee" amount="133.62" />
</Surcharges>
Example REST

"Surcharges": {
"@size": "2",
"Surcharge": [
{
"@type": "SalesTax",
"@amount": "126.62"

}, {
"@type": "TaxAndServiceFee",
"@amount": "133.62"
} …
Example:



5.8 展示入住提示

当 checkInInstructions 通过房型供应状态响应提示时,就必须为每一个提示的房型进行展示。这些信息必须在订单生成前确保旅客知晓入住登记时会产生的费用、非营业时间的入住方法等。永远只使用房型供应状态响应(room availability response)获取的结果 —— hotel info 或 static database 的 check-in instruction 内容可能会不准确。

Code Samples
REST
{ "HotelRoomAvailabilityResponse": {
     "@size": "3",
     "customerSessionId": "0ABAAAAE-48DC-3914-D0B2-A769E3903921",
     "hotelId": 127092,
     "arrivalDate": "09/03/2015",
     "departureDate": "09/04/2015",
     "hotelName": "The Edgewater - A Noble House Hotel",
     "hotelAddress": "Pier 67, 2411 Alaskan Way",
     "hotelCity": "Seattle",
     "hotelStateProvince": "WA",
     "hotelCountry": "US",
     "numberOfRoomsRequested": 1,
     "checkInInstructions": "<p><b>Know Before You Go</b> <br /><ul> 
<li>Children 18 years old and younger stay free when occupying the parent or guardian's room,
 using existing bedding. </li> </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits
 are charged by the property at time of service, check-in, or check-out. </p> <ul> 
<li>Breakfast fee: USD 22 per person (approximately)</li> <li>Fee for in-room wireless 
Internet: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> 
<li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p>",
"HotelRoomResponse": [……
……


XML
<ns2:HotelRoomAvailabilityResponse xmlns:ns2="http://v3.hotel.wsapi.ean.com/" size="5">
 <customerSessionId>0ABAAA4D-082E-AA91-4D02-B8BAE1397B78</customerSessionId>
 <hotelId>127092</hotelId>
 <arrivalDate>09/03/2015</arrivalDate>
 <departureDate>09/04/2015</departureDate>
 <hotelName>The Edgewater - A Noble House Hotel</hotelName>
 <hotelAddress>Pier 67, 2411 Alaskan Way</hotelAddress>
 <hotelCity>Seattle</hotelCity>
 <hotelStateProvince>WA</hotelStateProvince>
 <hotelCountry>US</hotelCountry>
 <numberOfRoomsRequested>1</numberOfRoomsRequested>
 <checkInInstructions><p><b>Know Before You Go</b> <br /><ul> <li>Children 18 years old and
 younger stay free when occupying the parent or guardian's room, using existing bedding. </li>
 </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits are charged by the property 
at time of service, check-in, or check-out. </p> <ul> <li>Breakfast fee: USD 22 per person 
(approximately)</li> <li>Fee for in-room wireless Internet: USD 9.95 (for 24 hours, 
rates may vary)</li> <li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours,
 rates may vary)</li> <li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> <li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p></checkInInstructions> <HotelRoomResponse>



5.9 下单请求中登记了消费者的电子邮箱地址或合作伙伴有人值守的电子邮箱地址以及客人信用卡的CVV号码

在 ReservationInfo 的 email 节点必须登记消费者的电子邮箱地址或贵司用于处理预订确认函且有人值守的电子邮箱地址。这将确保EAN的所有电子邮件提醒(例如订单争议或异常处理)都可以被恰当地传递。

对于现付产品,您必须通过ReservationInfo中的creditCardIdentifier元素请求并提供消费者的信用卡CVV。

 



5.10 现付订单声明费用将被酒店收取

下单请求和确认页面必须清晰表明客人将会向酒店直接支付全部的费用。如果酒店提供的是不可退款的现付价,则告知客人酒店会在完成预定后的一段时间内进行扣款。

Example



5.11 如果允许儿童随行,儿童年龄必须清楚地声明

如果您的应用(网站、系统)允许儿童随行,您就必须对所有现付的酒店允许用户单独选定儿童人数及每位儿童的年龄。这些信息可以通过 numberOfChildren 和 childAges 节点传递 。当用户指定儿童之后,API 响应消息就会包含指定年龄、人数适用的限制、人头费、加床费、婴儿床费用等。这些信息必须在用户搜索及结账前清楚地向用户提示。每家酒店对儿童年龄范围的定义各不相同。通常是17岁或更小的旅客会被定义为儿童。部分酒店不允许18岁以下旅客入住。

Example



5.12 不可退改价格的特殊展示

不可退改价格通过 nonRefundable=true来表示,如果这个节点反映的情况和其他内容有冲突,始终以此为准。 在房型选择页面明确地对对应的房型突出不能退改的提示,并在订单填写页面再次展示这些信息。此类预订一旦生成,无论何种原因取消订单,酒店就无法进行任何退款。对于限期退改的价格,参阅我们的指南 cancelPolicyInfo array 来计算预估取消费用。



5.13 清楚地展示取消条款

在用户正式提交订单前,应该允许他们确认一遍订单的信息,您必须对选定的房型展示取消条款并要求用户接受这些条款。

用户在看到这些房型的取消条款之前不允许他们生成订单。取消条款必须通过实时的 API responses 的 cancelPolicyInfo array 节点获取如果您将取消条款作为您自己网站使用规定与政策中的一部分也是可以的,例如:“当您勾选此选项(当您继续提交预订)表示您已经阅读并接受了本站点的使用规定与政策以及您选定房间的取消条款。”

Example

5.14 下单请求中登记电话号码

订单中必须包含一个可以联系到旅客的有效联系电话。下单请求中可以通过 homePhone 字段登记该信息。要告知旅客该电话将被用于联系他们处理入住前的预订相关事宜。

Example



5.15 当specialCheckInInstructions返回特殊入住提示时需要展示其内容

当specialCheckInInstructions返回时,其内容必须为每一间房间展示。该部分信息包含了在酒店入住时的关键信息,且未包括在checkInInstructions中。例如,要求旅客通知酒店预计的抵达时间,入住登记处与客房分处不同地点,提示用户查收酒店通过电子邮件另外发出的入住提示。请将这些信息与之前的checkInInstructions的内容在同一地方展示。

Code Samples
REST
……
"checkInInstructions": "<p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p>",
"specialCheckInInstructions": "The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.", ……
XML
…… <checkInInstructions><p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p></checkInInstructions>
<specialCheckInInstructions>The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.</specialCheckInInstructions> ……
Example

6. 订单确认页面

6.1 清楚地展示收费的总额

Example

7. 预订确认函(入住券)

7.1 如果合作伙伴自行设计预订确认函,须清楚地展示费用明细

如果您不使用EAN系统的自动预订确认函(入住券)方案,您自行设计的预订确认函(入住券)就必须包含费用明细


7.2 税款和费用分列展示

通过 TaxAndServiceFee 提示的费用必须单列展示在所有需要提示税费以及(或)报价的地方,例如现付酒店的房间供应状态页面、订单填写页面和订单确认页面。当提示现付酒店资源的任何税款和服务费总和时,需要使用以下法律术语进行标注。基于酒店位置,而不是用户的位置。 欧洲: "Tax Recovery Charges", 其他地区: "Tax Recovery Charges and Service Fees"



7.3 合作伙伴服务费或订单处理费必须分列清楚地展示

如果您想用户收取服务费或订单处理费,必须明确地提示用户这些费用是您收取的,不是EAN收取的额外费用(例如,不是因为住宿产生的费用)。这类费用不能隐含在现有的费用明细内。合作伙伴的订单处理费或服务费不能和其他费用混算且必须单列明细。

Example:



7.4 城市税、强制性额外收费必须单列明细

当响应报文中的 MandatoryTax 在下单前的响应就提示了费用,您需在下单前的收费明细中单列这些费用。这些费用将在旅客到达酒店后收取,不是普通税费的一部分。

Example



7.5 每个房间都展示了床型描述

在预订确认函(入住券)中确认用户选择的床型。当availability responses中的BedTypes没有提示或只有一个值时,展示每个房间的 rateDescription 或 roomTypeDescription 即可 - 这些值通常都是一样的。当 BedTypes 提示了多个选项时,确认用户在房型选择时登记的床型偏好。在下单请求中使用 bedTypeId 登记用户选择的BedType ID。当同一房间的床型有所选择时,您还必须提示旅客:该选择会在旅客入住时会由酒店视实际情况量安排,但不保证一定会被满足。

Code Samples
Single Bed Type Example XML

<rateCode>205109735</rateCode>
<roomTypeCode>201048862</roomTypeCode>
<rateDescription>Deluxe Room, 2 Single Beds</rateDescription>
<roomTypeDescription>Deluxe Room, 2 Single Beds</roomTypeDescription>

<supplierType>E</supplierType>
<propertyId>18813</propertyId>
<BedTypes size="1">
<BedType id="43">
<description>2 single beds</description>
</BedType>

</BedTypes>

Multiple Bed Type Example XML
Note the rate/room type descriptions do not contain a bed type description.
<rateCode>204975819</rateCode>
<roomTypeCode>201019993</roomTypeCode>
<rateDescription>Executive Room</rateDescription>
<roomTypeDescription>Executive Room</roomTypeDescription>

<supplierType>E</supplierType>
<propertyId>18813</propertyId>
<BedTypes size="2">
<BedType id="14">
<description>1 king bed</description>
</BedType>
<BedType id="43">
<description>2 single beds</description>
</BedType>

</BedTypes>
Single Bed Type Example REST
"rateCode": 484072,
"roomTypeCode": 198058,
"rateDescription": "Deluxe Room, 1 King Bed",
"roomTypeDescription": "Deluxe Room, 1 King Bed",

"supplierType": "E",
"propertyId": 5900,
"BedTypes": {
"@size": "1",
"BedType": {
"@id": "14",
"description": "1 king bed"

}
},
Multiple Bed Type Example REST
"rateCode": 206423129,
"roomTypeCode": 426739,
"rateDescription": "Family Apartment sleeps 6",
"roomTypeDescription": "Family Apartment sleeps 6",

"supplierType": "E",
"propertyId": 914263,
"BedTypes": {
"@size": "2",
"BedType": [
{
"@id": "69",
"description": "1 double and 1 sofa bed"
}, {
"@id": "70",
"description": "2 twin and 1 sofa bed"

}
]
},



7.6 展示入住提示

当 checkInInstructions 通过房型供应状态响应提示时,就必须为每一个提示的房型进行展示。这些信息必须在订单生成前确保旅客知晓入住登记时会产生的费用、非营业时间的入住方法等。永远只使用房型供应状态响应(room availability response)获取的结果 —— hotel info 或 static database 的 check-in instruction 内容可能会不准确。

Code Samples
REST
{ "HotelRoomAvailabilityResponse": {
     "@size": "3",
     "customerSessionId": "0ABAAAAE-48DC-3914-D0B2-A769E3903921",
     "hotelId": 127092,
     "arrivalDate": "09/03/2015",
     "departureDate": "09/04/2015",
     "hotelName": "The Edgewater - A Noble House Hotel",
     "hotelAddress": "Pier 67, 2411 Alaskan Way",
     "hotelCity": "Seattle",
     "hotelStateProvince": "WA",
     "hotelCountry": "US",
     "numberOfRoomsRequested": 1,
     "checkInInstructions": "<p><b>Know Before You Go</b> <br /><ul> 
<li>Children 18 years old and younger stay free when occupying the parent or guardian's room,
 using existing bedding. </li> </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits
 are charged by the property at time of service, check-in, or check-out. </p> <ul> 
<li>Breakfast fee: USD 22 per person (approximately)</li> <li>Fee for in-room wireless 
Internet: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours, rates may vary)</li> 
<li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> 
<li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p>",
"HotelRoomResponse": [……
……

XML
<ns2:HotelRoomAvailabilityResponse xmlns:ns2="http://v3.hotel.wsapi.ean.com/" size="5">
 <customerSessionId>0ABAAA4D-082E-AA91-4D02-B8BAE1397B78</customerSessionId>
 <hotelId>127092</hotelId>
 <arrivalDate>09/03/2015</arrivalDate>
 <departureDate>09/04/2015</departureDate>
 <hotelName>The Edgewater - A Noble House Hotel</hotelName>
 <hotelAddress>Pier 67, 2411 Alaskan Way</hotelAddress>
 <hotelCity>Seattle</hotelCity>
 <hotelStateProvince>WA</hotelStateProvince>
 <hotelCountry>US</hotelCountry>
 <numberOfRoomsRequested>1</numberOfRoomsRequested>
 <checkInInstructions><p><b>Know Before You Go</b> <br /><ul> <li>Children 18 years old and
 younger stay free when occupying the parent or guardian's room, using existing bedding. </li>
 </ul></p><p><b>Fees</b> <br /><p>The following fees and deposits are charged by the property 
at time of service, check-in, or check-out. </p> <ul> <li>Breakfast fee: USD 22 per person 
(approximately)</li> <li>Fee for in-room wireless Internet: USD 9.95 (for 24 hours, 
rates may vary)</li> <li>Fee for wireless Internet in public areas: USD 9.95 (for 24 hours,
 rates may vary)</li> <li>Valet parking fee: USD 38 per night (in/out privileges)</li> 
<li>Late check-out fee: USD 125</li> <li>Rollaway bed fee: USD 20 per night</li>
<li>Facilities fee: USD 12.00 per accommodation, per night</li> </ul> 
<p>The above list may not be comprehensive. Fees and deposits may not include tax and 
are subject to change. </p></p></checkInInstructions> <HotelRoomResponse>



7.7 展示订单号和确认号

如果您的站点会直接向用户提供EAN的订单号和确认号,您必须在订单确认页面就清楚地展示这两个信息。如果您不使用EAN系统的自动预订确认函(入住券)方案,您就必须证明贵司的工作人员可以有办法获取EAN的原始itinerary ID 和 confirmation numbers 信息以便在与EAN客服部门沟通时使用。

Code Samples
REST
customerSessionId: "0ABAAA80-6022-F319-1492-8BACB0B09974",
    itineraryId: 177592654,
    confirmationNumbers: 1234,
    processedWithConfirmation: true,
    supplierType: "E",
    reservationStatusCode: "CF",
    existingItinerary: false,

XML
<ns2:HotelRoomReservationResponse xmlns:ns2="http://v3.hotel.wsapi.ean.com/">
<customerSessionId>0ABAAA8A-B59C-1291-4982-BDA2A8793A49</customerSessionId>
<itineraryId>177598724</itineraryId>
<confirmationNumbers>1234</confirmationNumbers>

<processedWithConfirmation>true</processedWithConfirmation>
<supplierType>E</supplierType>
<reservationStatusCode>CF</reservationStatusCode>
<existingItinerary>false</existingItinerary>

7.8 现付订单需在邮件中说明支付由酒店完成

确认邮件必须说明客人的预定是有保证的,酒店会在入住时要求支付,或类似表述。当酒店提供的是不可退款的现付价,则需要说明酒店会在完成预定后的一段时间内进行扣款。

7.9 当specialCheckInInstructions返回特殊入住提示时需要展示其内容

当specialCheckInInstructions返回时,其内容必须为每一间房间展示。该部分信息包含了在酒店入住时的关键信息,且未包括在checkInInstructions中。例如,要求旅客通知酒店预计的抵达时间,入住登记处与客房分处不同地点,提示用户查收酒店通过电子邮件另外发出的入住提示。请将这些信息与之前的checkInInstructions的内容在同一地方展示。

Code Samples
REST
……
"checkInInstructions": "<p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p>",
"specialCheckInInstructions": "The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.", ……
XML
…… <checkInInstructions><p><b>Know  Before You Go</b> <br /><ul>  <li>Reservations  are required for massage services and spa treatments. Reservations can  be made by contacting the hotel prior to arrival, using the contact  information on the booking confirmation. </li> <li>One child  12 years old or younger stays free when occupying the parent or  guardian's room, using existing bedding. </li><li>Only  registered guests are allowed in the guestrooms. </li>  <li>Some facilities may have restricted access. Guests can contact  the property for details using the contact information on the booking  confirmation. </li>  </ul></p><p><b>Fees</b> <br  /><p>The following fees and deposits are charged by the  property at time of service, check-in, or check-out. </p>  <ul> <li>Fee for buffet breakfast: AED 88 per person  (approximately)</li>                <li>Rollaway bed fee:  AED 110 per night</li>  </ul> <p>The above list may  not be comprehensive. Fees and deposits may not include tax and are  subject to change. </p></p></checkInInstructions>
<specialCheckInInstructions>The Dubai International Hotel is meant exclusively for transit passengers. Guests who book a stay in the hotel cannot go out of the airport, nor can they retrieve checked-in luggage. Guests should not proceed through passport control, as they will then not be able to access the hotel. Guests should contact the hotel in advance with their flight details so that staff can assist them in arriving at the hotel. Contact details can be found on the booking confirmation. Guests must provide their boarding pass and passport at check-in as this hotel is inside the airport. For more details, please contact the office using the information on the reservation confirmation received after booking.</specialCheckInInstructions> ……
Example

8. 技术和防欺诈的要求

8.1 在每个下单请求中都使用了唯一识别的合作伙伴自己系统的订单号

在每次下单时,您都必须使用 affiliateConfirmationId 节点登记您自己系统的订单号,以帮助: 您自己追踪订单记录、 防止因多次提交而 生成重复订单/引起重复扣款、在无法接收到EAN API响应或接收到空响应或发生等待响应超时时,使用您自己的订单号查询EAN的系统有没有生成对应的订单。



8.2 处理待确认及异常订单的逻辑

查看 Pending Supplier Process 页面以及 error handling 章节的介绍可以帮助您的站点达到标准要求。订单如果提示为 PS 状态则必须进行跟进直至状态变为确认(CF)、异常(ER)或到达3天。大多数订单都可以在几小时至一天时间内完成更新。



8.3 合作伙伴为每一个订单都登记了用户的IP地址

用户端的IP地址必须在所有的API请求中都进行了登记。这个要求可以确保EAN系统可以正确地判断销售渠道并为用户提供相关的信息以及最优的价格。使用静态、虚假或者服务器的IP地址会导致价格校验失败异常的发生以及返回错误的内容。



8.4 合作伙伴在每一个请求中都登记了session ID

您必须使用 customerSessionId 字段为每一个用户从第一个搜索开始登记该用户的识别标志,以记录用户的操作轨迹。您可以可以使用hotel list的第一个响应结果分配的识别标识进行登记。登记该信息可以确保各个API请求和响应之间的内容一致性,您的用户也可以从选购到下单获取一致的体验。这个值可以帮助 EAN 进行异常调查时提供帮助,它可以明确每个用户的请求之间的关系。



8.5 合作伙伴在每一个请求中都登记了用户端浏览介质

如果您希望获取移动端特别优惠,用户端浏览介质(user agent)信息就必须在每一个API请求中进行登记,系统会据此来判断用户的移动端设备类型并确保只有符合资质的移动设备才可以获得相应优惠的价格。



8.6 合作伙伴需集附加的反欺诈措施

如果您的站点提供现付酒店产品,您需要集成由EAN提供的附加的反欺诈元素。它包括但不限于:JavaScript代码,在API请求中的额外数据元素,如apiExperience, Credit Card Full Name, customer email, stateProvinceCode, and postalCode.

您的商务代表会告知您是否需要此集成以及使用EAN反欺诈措施的指引。
Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments