Các khoản phí phụ của khách

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

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

Giá được tính từ thông báo ExtraGuestCharges chỉ hợp lệ nếu đáp ứng tất cả các yêu cầu về hạn mức. Hãy xem bài viết 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 Nội dung 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ị 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ó 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ị 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 của 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: 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í của một cơ sở lưu trú.
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ỉ overlay được hỗ trợ và giá trị 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 áp dụng nội dung cập nhật.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge 0..99 ExtraGuestCharge

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

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

Xem nội dung 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 là số dương xác định số tiền chiết khấu cố định đối với giá dành cho người lớn cho một trẻ khác trong khung giá này. Khoản phí này sử dụng cùng đơn vị tiền tệ với đơn vị tiền tệ đã chỉ định cho giá mỗi đêm.

Nhìn chung, khoản phí cho một trẻ trong khung giá này được tính bằng cách trừ đi số tiền cố định khỏi "đơn giá". Đơn giá sẽ đượ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 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 liệu có cần đưa trẻ em vào NumberOfGuest hay không khi bạn chọn mức giá <BaseByGuestAmount> để áp dụng phí theo tỷ lệ phần trăm và chiết khấu.

Mục tiêu ở đây là để có được "đơn giá" để có thể 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ẻ sẽ không bao giờ được đưa vào số người lưu trú của mức 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 2 người lớn vì không tính cả trẻ em.

  • Nếu chỉ định preferred thì tốt nhất trẻ phải được đưa vào số người lưu trú của mức giá.

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

  • Nếu bạn chỉ định always thì trẻ phải luôn được đưa vào số người lưu trú của mức 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 mức giá cho 4 người lớn vì phải có trẻ em.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes 0..1 RoomTypes Vùng chứa danh sách các loại phòng có áp dụng phí. Các khoản phí sẽ được á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ú đã 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 thuộc tính 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 là 50.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans 0..1 RatePlans Vùng chứa danh sách những gói giá có áp dụng phí. Nếu bạn không chỉ định <RatePlans>, thì 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 xác định là tổng hợp các gói, giá và tình trạng phòng, như được xác định trong các thông báo Giao dịch (Dữ liệu cơ sở lưu trú), OTA_HotelRateAmountNotifRQ cũng như OTA_HotelAvailNotifRQ, đồng thời được xác định bằng PackageID.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id 1 string Giá trị nhận dạng duy nhất của gói giá. Giá trị này tương ứng với giá trị PackageID trong <PackageData> trong 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 là 50.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates 0..1 StayDates Vùng chứa một hoặc nhiều phạm vi ngày 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 sẽ được áp dụng.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start 0..1 Date Ngày bắt đầu (bao gồm cả 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 giống với ngày end. Nếu bạn không chỉ định start, thì phạm vi ngày sẽ không 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 (dựa trên 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 chỉ định end, thì 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 chỉ định, tất cả các ngày đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi chỉ định một ngày. Ví dụ: "MTWHF" cho biết rằng các ngày trong tuần được phép sử dụng trong phạm vi ngày.

Ký tự hợp lệ là:

  • M đại diện cho thứ Hai
  • T cho thứ Ba
  • W cho thứ Tư
  • H đại diện cho thứ Năm
  • F 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í của người lớn

Các khoản phí cho người lớn bổ sung chỉ có thể được biểu thị dưới dạng số tiền cố định. Ví dụ sau đây cho thấy 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 tỷ lệ 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 4 người lớn trên Google, tổng giá sẽ là 170 = 120 + 50.

120 bắt nguồn từ giá <BaseByGuestAmt> với NumberOfGuests="3" và 50 đến từ AdultCharge amount="50".

Phí trẻ em

Các khoản phí cho trẻ em được biểu thị trong khung tuổi đến 17 và có thể được biểu thị ở dạng số tiền cố định, phần trăm hoặc chiết khấu.

Ví dụ sau đây cho thấy thông báo ExtraGuestCharges chỉ định khoản phí 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 tỷ lệ 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

Hạn chế về khoản phí

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

Ví dụ sau đây cho thấy một thông báo ExtraGuestCharges chỉ định các quy định 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 nêu rõ rằng người lớn phải trả phí cho mọi sản phẩm có loại phòng "queen" hoặc "king" với gói giá "free-wifi" hoặc "bữa sáng nóng" từ ngày 1 tháng 9 năm 2020 đến ngày 14 tháng 9 năm 2020.

Phí trùng lặp

Phần này đưa ra ví dụ về một thông báo không hợp lệ, trong đó nêu rõ các mức 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 quy định rằng "queen" và "free-wifi" từ ngày 1 đến ngày 14 tháng 9 sẽ tính thêm 50 người lớn. <ExtraGuestCharge> thứ hai quy định rằng bất kỳ "nữa" hoặc "king" nào có "bữa sáng miễn phí" hoặc "bữa sáng nóng" từ ngày 1 đến ngày 5 tháng 9 đều phải tính thêm 20 người lớn. Có các khoản phí chồng chéo cho "queen" và "free-wifi" từ ngày 1 đến ngày 5 tháng 9 và xung đột giữa việc tính phí 20 hoặc 50 cho 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 Nội dung 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 vấn đề.
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 của thông báo ExtraGuestCharges liên quan.
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 xử lý hỏng.

<Success> hoặc <Issues> xuất hiện trong mỗi thông báo.

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.

<Success> hoặc <Issues> xuất hiện trong mỗi thông báo.

ExtraGuestChargesResponse / Issues / Issue 1..n Issue Nội dung mô tả về cảnh báo, lỗi hoặc lần 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 vấn đề này trong bài viết 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 sự cố đã 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 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>