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

Bạn có thể thay đổi mức giá được gửi qua <OTA_HotelRateAmountNotifRQ> cho phù hợp với người lớn và trẻ em ngoài số khách ban đầu trong giá phòng. Thông báo ExtraGuestCharges giúp cung cấp thông tin cụ thể về cách tính giá phòng cho những khách bổ sung này, cũng như những phòng, gói giá và ngày lưu trú mà khách hàng phải trả.

Yêu cầu về sức chứa

Giá được tính trong thông báo ExtraGuestCharges chỉ hợp lệ nếu đáp ứng tất cả các yêu cầu về dung lượng. 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ư 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 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 tính 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ỉ hỗ trợ overlay và giá trị mặc định là lớp phủ. Mọi khoản phí trước đây của cơ sở lưu trú này sẽ bị xoá trước khi nội dung cập nhật được áp dụng.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge 0..99 ExtraGuestCharge

Một tập hợp 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 khoản phí và cách tính phí theo độ tuổi hoặc danh mục khách lưu trú.

Mỗi ExtraGuestCharge trong một HotelExtraGuestCharges phải áp dụng cho một nhóm 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 cách kế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 nhóm 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 tính phí cho 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 cho biết số tiền cố định cần 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 giá mỗi đêm.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets Vùng chứa dành cho trẻ em bổ sung phí. 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 ở một độ tuổi cụ thể. Bạn nên sắp xếp các video này 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 cần 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 là 0 nếu không có <ChildAgeBracket> nào khác được chỉ định trước độ tuổi này. Nếu không, độ tuổi này lớn hơn độ tuổi tối đa của khung trước.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity 1 boolean 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 thông qua 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 phải tính vào sức chứa của trẻ.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 0..1 float Một giá trị thập phân không âm cho biết số tiền cố định cần tính cho một phần tử con khác trong dấu ngoặc 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 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 giá người lớn phải được tính cho trẻ em bổ sung trong dấu ngoặc 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 mức giá mỗi đêm.

Hãy xem nội dung thảo luận trong mục 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

Một giá trị thập phân dương cho biết số tiền chiết khấu cố định so với giá người lớn cho trẻ em bổ sung trong dấu ngoặc 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 giá mỗi đêm.

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

Mục tiêu ở đây là lấy một "đơ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à never, preferred hoặc always.

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

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

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

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

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

    Nếu muốn tính mức 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 bao gồm trẻ em.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes 0..1 RoomTypes Vùng chứa danh sách các loại phòng áp dụng khoản phí đó. Các khoản phí sẽ được áp dụng cho từng <RoomType> được chỉ định. Nếu bạn không xác định <RoomTypes>, phí sẽ áp dụng cho tất cả các phòng trong cơ sở lưu trú được 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ũ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 liên kết 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 các gói giá áp dụng khoản phí đó. Nếu bạn không xác định <RatePlans>, phí sẽ áp dụng cho mọi 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 bằng tổ hợp gói, giá và tình trạng phòng, như 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, và đượ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 liên kết 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 trong <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 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 các 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 (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ước hoặc giống với ngày end. Nếu bạn không chỉ định start, phạm vi ngày sẽ không có giới hạn về 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, phạm vi ngày sẽ không có giới hạn đối với 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 những ngày trong tuần được cho phép trong phạm vi ngày.

Các ký tự hợp lệ 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í cho người lớn

Các khoản phí cho người lớn bổ sung chỉ có thể được trình bày dưới dạng số tiền cố định. Ví dụ sau đây cho thấy 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 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 từ AdultCharge amount="50".

Phí cho trẻ em

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

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

Giới hạn tính phí

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

Ví dụ sau đây cho thấy 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õ việc phải tính phí người lớn cho bất kỳ sản phẩm nào có loại phòng là "nữ hoàng" hoặc "1m8" với gói giá "Wi-Fi miễn phí" hoặc "bữa sáng nổi bật" từ ngày 1 tháng 9 năm 2020 đến ngày 14 tháng 9 năm 2020.

Khoản 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ệ nêu rõ 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 cho biết "queen" và "free-wifi" từ ngày 1 đến ngày 14 tháng 9 sẽ tính phí cho thêm 50 người lớn. <ExtraGuestCharge> thứ hai chỉ định rằng mọi "nữ hoàng" hoặc "vua" có "Wi-Fi miễn phí" hoặc "bữa sáng nổi bật" vào ngày 1 đến ngày 5 tháng 9 phải tính phí thêm 20 người lớn. Từ ngày 1 đến ngày 5 tháng 9, bạn sẽ bị tính phí chồng chéo cho "nữ hoàng" và "Wi-Fi miễn phí" và 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 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 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ư 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.

<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ượt xử lý xảy ra 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 Thông báo lỗi về trạng thái 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 đề mà bạ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 một thông báo ExtraGuestCharges chưa đượ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>