ExtraGuestCharges

Bạn có thể sửa đổi giá được gửi qua <OTA_HotelRateAmountNotifRQ> để tính cho người lớn và trẻ em ngoài số lượng khách ban đầu của giá. Thông báo ExtraGuestCharges cho phép chỉ định cách tính giá cho những khách lưu trú bổ sung này và những phòng, gói giá cũng như ngày lưu trú mà các khoản phí của họ sẽ áp dụng.

Yêu cầu về dung lượng

Giá được tính từ thông báo ExtraGuestCharges chỉ hợp lệ nếu bạn đáp ứng tất cả các yêu cầu về sức chứa. Hãy xem Giao dịch (Dữ liệu của cơ sở lưu trú) để biết thêm thông tin.

Yêu cầu

Cú pháp

Thông báo ExtraGuestCharges sử dụng cú pháp sau:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges partner="partner_account_name"
                   id="message_ID"
                   timestamp="timestamp">
  <HotelExtraGuestCharges hotel_id="HotelID" action="[overlay]">
    <ExtraGuestCharge>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD"
                   days_of_week="MTWHFSU_or_subset"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="float"/>
        <ChildAgeBrackets>
        <!-- The following are different ways child charges can be specified.
        Use the option that matches your system. -->
          <ChildAgeBracket max_age="integer" amount="float"
                           exclude_from_capacity="[true|false]"/>
          <ChildAgeBracket max_age="integer" percentage="float"
                           exclude_from_capacity="[true|false]"
                           counts_as_base_occupant="[never|preferred|always]"/>
          <ChildAgeBracket max_age="integer" discount_amount="float"
                           exclude_from_capacity="[true|false]"
                           counts_as_base_occupant="[never|preferred|always]"/>
        </ChildAgeBrackets>
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

Phần tử và thuộc tính

Thông báo ExtraGuestCharges có các phần tử và thuộc tính sau:

Phần tử / @Thuộc tính Số lần xuất hiện Loại Mô tả
ExtraGuestCharges 1 Complex element Phần tử gốc của thông báo này.
ExtraGuestCharges / @partner 1 string Tài khoản đối tác dùng cho thông báo này. Giá trị của chuỗi này là giá trị Partner key được liệt kê trên trang Cài đặt tài khoản trong Hotel Center.

Lưu ý: Nếu bạn có một phần phụ trợ cung cấp nguồn cấp dữ liệu cho nhiều tài khoản, thì giá trị này cần phải khớp với giá trị của thuộc tính ID được chỉ định trong phần tử <RequestorID> của thông báo <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> cho cùng một tài khoản.

ExtraGuestCharges / @id 1 string Giá trị nhận dạng duy nhất cho thông báo yêu cầu này. Giá trị này được trả về trong thông báo phản hồi. Các ký tự được phép là a-z, A-Z, 0-9, _ (dấu gạch dưới) và - (dấu gạch ngang).
ExtraGuestCharges / @timestamp 1 DateTime Ngày và giờ tạo thông báo này.
ExtraGuestCharges / HotelExtraGuestCharges 0..n HotelExtraGuestCharges Vùng chứa các khoản phí cho một cơ sở lưu trú duy nhất.
ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id 1 string Giá trị nhận dạng duy nhất của cơ sở lưu trú. Giá trị này phải khớp với Mã khách sạn được chỉ định bằng phần tử <id> trong phần tử <listing> của Nguồn cấp dữ liệu danh sách khách sạn. Mã khách sạn cũng có trong Hotel Center.
ExtraGuestCharges / HotelExtraGuestCharges / @action 0..1 enum Chỉ định cách áp dụng bản cập nhật. Chỉ hỗ trợ overlay và mặc định là lớp phủ. Mọi khoản phí trước đó cho cơ sở lưu trú này sẽ bị xoá trước khi bản cập nhật được áp dụng.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge 0..99 ExtraGuestCharge

Một bộ phí duy nhất cho một cơ sở lưu trú. Quy định này có thể chứa các hạn chế về cách áp dụng phí và cách tính phí theo độ tuổi hoặc danh mục khách.

Mỗi ExtraGuestCharge trong một HotelExtraGuestCharges phải áp dụng cho một nhóm ngày và sản phẩm riêng biệt. Nếu hai phần tử ExtraGuestCharge đề cập đến cùng một tổ hợp ngày-sản phẩm, thì toàn bộ thông báo sẽ bị từ chối.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets 1 AgeBrackets Vùng chứa các độ tuổi để tính phí theo độ tuổi hoặc danh mục khách.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge 0..1 AdultCharge Vùng chứa khoản phí cho một người lớn bổ sung.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount 0..1 float Một giá trị thập phân dương chỉ định số tiền cố định sẽ được tính cho một người lớn bổ sung. Khoản phí này sử dụng cùng đơn vị tiền tệ với đơn vị tiền tệ được chỉ định cho đơn giá theo đêm.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets Vùng chứa các khoản phí bổ sung cho trẻ em. Các nhóm tuổi này chỉ có thể bao gồm độ tuổi từ 0 đến 17.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..99 ChildAgeBracket Khoản phí áp dụng cho trẻ em trong một độ tuổi cụ thể. Các giá trị này phải được sắp xếp theo thứ tự từ max_age thấp nhất đến max_age cao nhất. Bạn có thể chỉ định số tiền phải trả bằng cách sử dụng amount, percentage hoặc discount_amount. Bạn phải chỉ định đúng một trong các thuộc tính đó cho mỗi <ChildAgeBracket>.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer Độ tuổi tối đa mà các khoản phí được chỉ định trong <ChildAgeBracket> có thể áp dụng. Độ tuổi tối thiểu là 0 nếu không có <ChildAgeBracket> nào khác được chỉ định trước <ChildAgeBracket> này. Nếu không, độ tuổi này sẽ lớn hơn độ tuổi tối đa của nhóm tuổi trước đó một đơn vị.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity 1 boolean Một giá trị boolean cho biết liệu trẻ em trong độ tuổi này có được tính vào tổng sức chứa và sức chứa trẻ em của phòng hay không. Bạn có thể đặt các sức chứa này bằng Giao dịch(Dữ liệu về cơ sở lưu trú). Ví dụ: trẻ sơ sinh dưới một độ tuổi nhất định có thể không cần tính vào số lượng trẻ em.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 0..1 float Giá trị thập phân không âm chỉ định số tiền cố định sẽ được tính cho một trẻ em bổ sung trong khoảng này. Khoản phí này sử dụng cùng đơn vị tiền tệ với đơn vị tiền tệ được chỉ định cho đơn giá theo đêm.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage 0..1 float

Giá trị thập phân từ 1 đến 99 cho biết tỷ lệ phần trăm của giá người lớn mà bạn nên tính cho một trẻ em bổ sung trong khoảng này. Khoản phí này sử dụng cùng đơn vị tiền tệ với đơn vị tiền tệ được chỉ định cho đơn giá theo đêm.

Hãy xem phần thảo luận trong counts_as_base_occupant để biết thông tin chi tiết về cách tính giá dành cho người lớn.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @discount_amount 0..1 float

Giá trị thập phân dương chỉ định số tiền chiết khấu cố định so với giá người lớn cho một trẻ em bổ sung trong nhóm tuổi này. Khoản phí này sử dụng cùng đơn vị tiền tệ với đơn vị tiền tệ được chỉ định cho đơn giá theo đêm.

Nhìn chung, phí cho trẻ em trong độ tuổi này được tính bằng cách trừ số tiền cố định vào "đơn giá". Giá theo đơn vị được thảo luận chi tiết hơn trong phần thuộc tính counts_as_base_occupant.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @counts_as_base_occupant 0..1 string

Nếu bạn chỉ định thuộc tính percentage hoặc discount_amount, thì bạn cũng phải chỉ định counts_as_base_occupant. Giá trị này xác định xem trẻ em có được đưa vào NumberOfGuest hay không khi bạn chọn mức <BaseByGuestAmount> để áp dụng các khoản phí và chiết khấu theo tỷ lệ phần trăm.

Mục tiêu ở đây là lấy "đơn giá" để tính phí thực tế.

unit price = rate / occupancy

Giá trị của thuộc tính này phải là một trong các giá trị never, preferred hoặc always.

  • Nếu bạn chỉ định never thì trẻ em không bao giờ được tính vào số người lưu trú của giá phòng.

    Nếu muốn tính giá cho 2 người lớn và 2 trẻ em (2+2), bạn nên sử dụng giá cho 2 người lớn vì không được tính trẻ em.

  • Nếu bạn chỉ định preferred thì tốt nhất là bạn nên thêm trẻ em vào số người lưu trú của giá.

    Nếu muốn tính giá cho 2 người lớn và 1 trẻ em (2+1), tốt nhất bạn nên sử dụng giá cho 3 người lớn. Tuy nhiên, nếu không tìm thấy giá đó, bạn nên sử dụng giá cho 2 người lớn.

  • Nếu bạn chỉ định always thì trẻ em phải luôn được tính vào số người lưu trú của giá.

    Nếu muốn tính giá cho 2 người lớn và 2 trẻ em (2+2), bạn nên sử dụng giá cho 4 người lớn vì trẻ em phải được tính vào.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes 0..1 RoomTypes Vùng chứa danh sách các loại phòng mà khoản phí áp dụng. Các khoản phí này sẽ áp dụng cho mỗi <RoomType> được chỉ định. Nếu bạn không chỉ định <RoomTypes>, các khoản phí sẽ áp dụng cho tất cả các phòng trong cơ sở lưu trú mà bạn chỉ định.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType 1..n RoomType Xác định một loại phòng. Loại phòng được xác định trong phần tử <RoomData> của thông báo Giao dịch (Dữ liệu của cơ sở lưu trú) và được tham chiếu bằng giá trị <RoomID>. (Giá trị <RoomID> của phần tử này cũng được thuộc tính InvTypeCode trong các thông báo OTA_HotelRateAmountNotifRQ tham chiếu.)
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id 1 string Giá trị nhận dạng duy nhất của quỹ phòng (loại phòng). Giá trị này tương ứng với <RoomID> trong thông báo Giao dịch (Dữ liệu của cơ sở lưu trú). Số lượng ký tự tối đa được phép sử dụng là 50.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans 0..1 RatePlans Vùng chứa danh sách các gói giá mà khoản phí áp dụng. Nếu bạn không xác định <RatePlans>, các khoản phí sẽ áp dụng cho tất cả gói giá.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan 1..n RatePlan Xác định một gói giá. Gói giá được định nghĩa là tổng hợp gói dịch vụ, giá và tình trạng phòng, theo cách xác định trong các thông báo Giao dịch (Dữ liệu của cơ sở lưu trú), OTA_HotelRateAmountNotifRQ và OTA_HotelAvailNotifRQ, đồng thời gói giá còn được xác định bằng PackageID.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id 1 string Giá trị nhận dạng riêng biệt của gói giá. Giá trị này tương ứng với giá trị PackageID trong <PackageData> trong một thông báo Giao dịch (Dữ liệu của cơ sở lưu trú) và trong thuộc tính RatePlanCode của <StatusApplicationControl> trong cả thông báo <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ>. Số lượng ký tự tối đa được phép sử dụng là 50.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates 0..1 StayDates Vùng chứa một hoặc nhiều phạm vi ngày dùng để xác định cách áp dụng các khoản phí.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange 1..99 DateRange Phạm vi ngày xác định những ngày mà chương trình khuyến mãi được áp dụng.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start 0..1 Date Ngày bắt đầu (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trước hoặc trùng với ngày end. Nếu bạn không xác định start, phạm vi ngày sẽ không có giới hạn vì không có ngày bắt đầu.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end 0..1 Date Ngày kết thúc (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trùng hoặc sau ngày start. Nếu bạn không xác định end, phạm vi ngày sẽ không có giới hạn vì không có ngày kết thúc.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu bạn không xác định, tất cả các ngày trong tuần đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi xác định một ngày. Ví dụ: "MTWHF" cho biết là được phép sử dụng các ngày làm việc trong tuần trong phạm vi ngày.

Các ký tự hợp lệ:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

Ví dụ

Phí dành cho người lớn

Bạn chỉ có thể biểu thị các khoản phí cho người lớn bổ sung dưới dạng số tiền cố định. Ví dụ sau đây minh hoạ một thông báo ExtraGuestCharges chỉ định các khoản phí dành cho người lớn:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <StayDates />
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

Sau đây là các mức thuế suất tương ứng:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="ABC">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Khi người dùng tìm kiếm giá cho 4 người lớn trên Google, tổng giá sẽ là 170 = 120 + 50.

120 đến từ tỷ lệ <BaseByGuestAmt> với NumberOfGuests="3" và 50 đến từ AdultCharge amount="50".

Phí cho trẻ em

Phí dành cho trẻ em được thể hiện theo độ tuổi lên đến 17 tuổi và có thể được thể hiện bằng số tiền cố định, tỷ lệ phần trăm hoặc chiết khấu.

Ví dụ sau đây minh hoạ một thông báo ExtraGuestCharges chỉ định các khoản phí cho trẻ em:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <AgeBrackets>
        <ChildAgeBrackets>
          <ChildAgeBracket max_age="3" percentage="10"
                           counts_as_base_occupant="never" />
          <ChildAgeBracket max_age="10" percentage="30"
                           counts_as_base_occupant="preferred"/>
          <ChildAgeBracket max_age="17" discount_amount="10"
                           counts_as_base_occupant="always" />
        </ChildAgeBrackets>
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

Sau đây là các mức thuế suất tương ứng:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="ABC">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
```

  1.  Suppose you want the total price for 2 adults and 1 child of 2 years
      of age.

      Children aged 0-3 are never included in the rate's occupancy,
      so here you should take the double occupancy rate and divide by 2 to
      get the unit price. Then, multiply by the percentage rate and sum
      with the rate to get the total price.

      `unit price ` = 110 / 2 = 55

      `total price` = 110 + 55 * 0.1 = 115.5

  1.  Suppose you want the total price for 1 adult and 2 children, both of 5
      years of age.

      Children aged 4-10 are preferably included in the rate's
      occupancy. you should start by looking for a 3 adult rate since both
      children are preferably included in the rate's occupancy. Since
      that doesn't exist you should fall back to the 2 adult rate and then,
      take this rate and divide by two to get the unit price. Finally,
      multiply by the percentage rate and sum with the scaled rate to
      get the total price.

      `unit price` = 110 / 2 = 55

      `total price` = 55 + 55 * 0.3 + 55 * 0.3 = 88

  1.  Suppose you want the total price for 1 adult and 1 child of 17
      years of age.

      Children aged 11-17 are always included in the rate's occupancy, so,
      in this case, take the double occupancy rate and divide by 2 to get
      the unit price. Then, deduct it by the discount amount and sum with
      the scaled rate to get the total price.

      `unit price` = 110 / 2 = 55

      `total price` = 55 + (55 - 10) = 100

Quy định hạn chế về việc tính phí

Bạn không bắt buộc phải sử dụng tất cả các loại hạn chế và có thể kết hợp các loại hạn chế với nhau.

Ví dụ sau đây minh hoạ một thông báo ExtraGuestCharges chỉ định các hạn chế:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
        <RoomType id="king" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
        <RatePlan id="hot-breakfast" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-14"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

Thông báo ở trên chỉ định rằng người lớn phải trả phí cho mọi sản phẩm có loại phòng là "queen" hoặc "king" với gói giá là "free-wifi" hoặc "hot-breakfast" cho các ngày từ 1 tháng 9 năm 2020 đến 14 tháng 9 năm 2020.

Phí trùng lặp

Phần này cho thấy ví dụ về một thông báo không hợp lệ chỉ định các khoản phí khác nhau cho cùng một tổ hợp ngày và sản phẩm.


<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-14"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
        <RoomType id="king" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
        <RatePlan id="hot-breakfast" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-05"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="20" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

Thông báo ở trên không hợp lệ vì <ExtraGuestCharge> đầu tiên chỉ định rằng "queen" và "free-wifi" cho khoảng thời gian từ ngày 1 đến ngày 14 tháng 9 sẽ tính thêm 50 cho người lớn. <ExtraGuestCharge> thứ hai chỉ định rằng bất kỳ "queen" hoặc "king" nào có "free-wifi" hoặc "hot-breakfast" từ ngày 1 đến ngày 5 tháng 9 đều phải tính phí thêm 20 cho người lớn. Có các khoản phí trùng lặp cho "queen" và "free-wifi" từ ngày 1 đến ngày 5 tháng 9, đồng thời có sự xung đột giữa việc tính phí 20 hay 50 cho một người lớn bổ sung.

Phản hồi

Cú pháp

Thông báo ExtraGuestChargesResponse sử dụng cú pháp sau:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</ExtraGuestChargesResponse>

Phần tử và thuộc tính

Thông báo ExtraGuestChargesResponse có các phần tử và thuộc tính sau:

Phần tử / @Thuộc tính Số lần xuất hiện Loại Mô tả
ExtraGuestChargesResponse 1 Complex element Phần tử gốc cho biết thông báo yêu cầu ExtraGuestCharges nhận được đã thành công hay gặp lỗi.
ExtraGuestChargesResponse / @timestamp 1 DateTime Ngày và giờ tạo thông báo này.
ExtraGuestChargesResponse / @id 1 string Giá trị nhận dạng duy nhất lấy từ thông báo ExtraGuestCharges được liên kết.
ExtraGuestChargesResponse / @partner 1 string Tài khoản đối tác dùng cho thông báo này.
ExtraGuestChargesResponse / Success 0..1 Success Cho biết rằng thông báo ExtraGuestCharges đã được xử lý thành công mà không có cảnh báo, lỗi hoặc lần xử lý hỏng nào.

Mỗi thông báo có <Success> hoặc <Issues>.

ExtraGuestChargesResponse / Issues 0..1 Issues Vùng chứa một hoặc nhiều vấn đề gặp phải trong quá trình xử lý thông báo ExtraGuestCharges.

Mỗi thông báo có <Success> hoặc <Issues>.

ExtraGuestChargesResponse / Issues / Issue 1..n Issue Thông tin mô tả về cảnh báo, lỗi hoặc lượt xử lý hỏng gặp phải trong quá trình xử lý thông báo ExtraGuestCharges. Bạn có thể xem thông tin chi tiết về các lỗi này trong Thông báo lỗi về trạng thái của nguồn cấp dữ liệu.
ExtraGuestChargesResponse / Issues / Issue / @code 1 integer Giá trị nhận dạng của vấn đề.
ExtraGuestChargesResponse / Issues / Issue / @status 1 enum

Loại vấn đề gặp phải.

Các giá trị hợp lệ là warning, errorfailure.

Ví dụ

Thành công

Dưới đây là phản hồi cho một thông báo ExtraGuestCharges được xử lý thành công.

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</ExtraGuestChargesResponse>

Vấn đề

Dưới đây là phản hồi cho thông báo ExtraGuestCharges không được xử lý do gặp lỗi.

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</ExtraGuestChargesResponse>