ExtraGuestCharges

يمكن تعديل الأسعار المرسَلة من خلال <OTA_HotelRateAmountNotifRQ> لتشمل البالغين والأطفال بالإضافة إلى العدد الأصلي للنزلاء. تسمح رسالة ExtraGuestCharges بتحديد طريقة احتساب الأسعار لهؤلاء الضيوف الإضافيين والغرف وخطط الأسعار وتواريخ الإقامة التي يجب تطبيق رسومهم عليها.

متطلبات السعة

لا تكون الأسعار المحسوبة من الرسالة ExtraGuestCharges صالحة إلا إذا تم استيفاء جميع متطلبات السعة. لمزيد من المعلومات، راجِع المعاملة (بيانات الموقع).

الطلبات

البنية

تستخدم الرسالة ExtraGuestCharges البنية التالية:

<?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>

العناصر والسمات

تحتوي رسالة ExtraGuestCharges على العناصر والسمات التالية:

العنصر / @السمة عدد مرات الظهور النوع الوصف
ExtraGuestCharges 1 Complex element العنصر الجذر لهذه الرسالة.
ExtraGuestCharges / @partner 1 string حساب الشريك لهذه الرسالة قيمة السلسلة هذه هي قيمة Partner key المُدرَجة في صفحة إعدادات الحساب في Hotel Center.

ملاحظة: إذا كان لديك نظام خلفي يوفّر خلاصات لعدة حسابات، يجب أن تتطابق هذه القيمة مع قيمة السمة ID المحدّدة في العنصر <RequestorID> من رسالتَي <OTA_HotelRateAmountNotifRQ> و<OTA_HotelAvailNotifRQ> للحساب نفسه.

ExtraGuestCharges / @id 1 string معرّف فريد لرسالة الطلب هذه. يتم عرض هذه القيمة في رسالة الردّ. الأحرف المسموح بها هي a-z وA-Z و0-9 و_ (شرطة سفلية) و- (شرطة).
ExtraGuestCharges / @timestamp 1 DateTime تاريخ إنشاء هذه الرسالة ووقته.
ExtraGuestCharges / HotelExtraGuestCharges 0..n HotelExtraGuestCharges حاوية لرسوم مكان مخصّص للاستئجار واحد
ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id 1 string المعرّف الفريد للمكان المخصّص للاستئجار. يجب أن تتطابق هذه القيمة مع معرّف الفندق المحدّد باستخدام <id> في العنصر <listing> في خلاصة بيانات الفنادق. يظهر رقم تعريف الفندق أيضًا في Hotel Center.
ExtraGuestCharges / HotelExtraGuestCharges / @action 0..1 enum تحدِّد هذه السمة كيفية تطبيق التحديث. يُسمح فقط بالقيمة overlay، والإعداد التلقائي هو التراكب. يتم محو أي رسوم سابقة لهذا الموقع قبل تطبيق التحديث.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge 0..99 ExtraGuestCharge

مجموعة واحدة من الرسوم لمكان مخصّص للاستئجار قد يتضمّن ذلك قيودًا على كيفية تطبيق الرسوم وكيفية احتسابها حسب العمر أو فئة الضيوف.

يجب أن ينطبق كل ExtraGuestCharge ضمن HotelExtraGuestCharges على مجموعة فريدة من التواريخ والمنتجات. إذا كان عنصرا ExtraGuestCharge يشيران إلى المجموعة نفسها من التاريخ والمنتج، سيتم رفض الرسالة بأكملها.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets 1 AgeBrackets حاوية لفئات عمرية تُستخدم لاحتساب الرسوم حسب العمر أو فئة الضيف
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge 0..1 AdultCharge حاوية لرسوم شخص بالغ إضافي
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount 0..1 float قيمة عشرية موجبة تحدّد المبلغ الثابت الذي سيتم تحصيله مقابل كل شخص بالغ إضافي. تُفرض هذه الرسوم بالعملة نفسها المحدّدة للأسعار الليلية.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets حاوية لرسوم الأطفال الإضافية قد تغطي الفئات العمرية هذه الفئة العمرية من 0 إلى 17 عامًا فقط.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..99 ChildAgeBracket هي رسوم تنطبق على الأطفال في فئة عمرية معيّنة. ويجب ترتيبها من أدنى قيمة max_age إلى أعلى قيمة max_age. يمكن تحديد المبلغ الذي سيتم تحصيله باستخدام السمة amount أو percentage أو discount_amount. يجب تحديد سمة واحدة فقط من هذه السمات لكل <ChildAgeBracket>.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer الحدّ الأقصى للعمر الذي قد تنطبق عليه الرسوم المحدّدة في <ChildAgeBracket>. الحد الأدنى للعمر هو صفر إذا لم يتم تحديد أي <ChildAgeBracket> أخرى قبل هذه السمة. وفي ما عدا ذلك، يكون العمر أكبر من الحد الأقصى للعمر في الفئة العمرية السابقة بمقدار سنة واحدة.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity 1 boolean قيمة منطقية تشير إلى ما إذا كان يجب احتساب الطفل ضمن هذه الفئة العمرية ضمن السعة الإجمالية للغرفة وسعة الأطفال. يمكن ضبط هذه السعات باستخدام المعاملة(بيانات الموقع). على سبيل المثال، قد لا يتم احتساب الأطفال الرضّع الذين تقل أعمارهم عن سن معيّنة ضمن سعة الأطفال.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 0..1 float قيمة عشرية غير سالبة تحدّد المبلغ الثابت الذي سيتم تحصيله مقابل طفل إضافي في هذا الفئة العمرية. تستخدِم هذه الرسوم العملة نفسها المحدّدة للأسعار الليلية.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage 0..1 float

قيمة عشرية تتراوح بين 1 و99 تحدّد النسبة المئوية من سعر البالغين التي يجب تحصيلها مقابل طفل إضافي في هذه الفئة العمرية. يتم تحصيل هذه الرسوم بالعملة نفسها المحدّدة للأسعار الليلية.

يمكنك الاطّلاع على المناقشة ضمن counts_as_base_occupant للحصول على تفاصيل حول طريقة احتساب سعر البالغين.

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

قيمة عشرية موجبة تحدّد مبلغ الخصم الثابت من سعر البالغين لطفل إضافي في هذه الفئة العمرية. يتم تحصيل هذه الرسوم بالعملة نفسها المحدّدة للأسعار الليلية.

بشكل عام، يتم احتساب رسوم الطفل في هذه الفئة العمرية من خلال خصم المبلغ الثابت من "سعر الوحدة". يمكنك الاطّلاع على مزيد من التفاصيل حول سعر الوحدة في قسم السمة counts_as_base_occupant.

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

في حال تحديد السمة percentage أو discount_amount، يجب أيضًا تحديد counts_as_base_occupant. تحدّد هذه القيمة ما إذا كان يجب تضمين طفل في NumberOfGuest عند اختيار سعر <BaseByGuestAmount> لتطبيق رسوم وخصومات النسبة المئوية.

والهدف هنا هو الحصول على "سعر الوحدة" الذي يمكن من خلاله احتساب الرسوم الفعلية.

unit price = rate / occupancy

يجب أن تكون قيمة هذه السمة إحدى القيم التالية: never أو preferred أو always.

  • في حال تحديد never، يجب ألا يتم تضمين الطفل في عدد الأشخاص المسموح به في الغرفة.

    إذا أردت احتساب سعر الإقامة لشخصَين بالغَين وطفلَين (2+2)، عليك استخدام سعر الإقامة لشخصَين بالغَين لأنّه لا يجب تضمين الأطفال.

  • إذا تم تحديد preferred، من المفضّل تضمين الطفل في عدد الأشخاص المسموح لهم بالإقامة في الغرفة.

    إذا أردت حساب سعر الإقامة لفردَين بالغَين وطفل واحد (2+1)، يُفضّل استخدام سعر الإقامة لثلاثة أفراد بالغين، ولكن إذا لم يتوفّر هذا السعر، عليك استخدام سعر الإقامة لفردَين بالغَين.

  • في حال تحديد always، يجب دائمًا تضمين الطفل في عدد الأشخاص الذين يمكنهم الإقامة في الغرفة.

    إذا أردت احتساب سعر الإقامة لشخصَين بالغَين وطفلَين (2+2)، عليك استخدام سعر الإقامة لأربعة أشخاص بالغين لأنّه يجب تضمين الأطفال.

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes 0..1 RoomTypes حاوية لقائمة بأنواع الغرف التي تنطبق عليها الرسوم يتم تطبيق الرسوم على كل <RoomType> محدَّد. في حال عدم تحديد <RoomTypes>، تنطبق الرسوم على جميع الغرف ضمن المكان المحدّد.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType 1..n RoomType تحدّد هذه السمة نوع الغرفة. يتم تحديد نوع الغرفة في العنصر <RoomData> ضمن الرسالة المعاملة (بيانات المكان المخصّص للاستئجار أو الإقامة)، ويتم الرجوع إليه باستخدام القيمة <RoomID>. (تتم أيضًا الإشارة إلى قيمة <RoomID> من خلال السمة InvTypeCode في رسائل OTA_HotelRateAmountNotifRQ).
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id 1 string المعرّف الفريد للمستودع (نوع الغرفة). ترتبط هذه القيمة بالقيمة <RoomID> في رسالة "معاملة" (بيانات الموقع). الحد الأقصى لعدد الأحرف المسموح به هو 50 حرفًا.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans 0..1 RatePlans حاوية لقائمة خطط الأسعار التي تنطبق عليها الرسوم إذا لم يتم تحديد <RatePlans>، سيتم تطبيق الرسوم على جميع خطط الأسعار.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan 1..n RatePlan تحدّد هذه السمة خطة أسعار. يتم تحديد خطة الأسعار من خلال مجموعة من الحزم والأسعار ومدى التوفّر، كما هو موضّح في الرسائل Transaction (Property Data) وOTA_HotelRateAmountNotifRQ وOTA_HotelAvailNotifRQ، وكما هو محدّد بواسطة PackageID.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id 1 string المعرّف الفريد لخطة الأسعار. ترتبط هذه القيمة بقيمة PackageID في <PackageData> في رسالة المعاملة (بيانات المنشأة)، وفي السمة RatePlanCode في <StatusApplicationControl> في كل من الرسالتين <OTA_HotelRateAmountNotifRQ> و<OTA_HotelAvailNotifRQ>. الحد الأقصى لعدد الأحرف المسموح به هو 50 حرفًا.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates 0..1 StayDates حاوية لنطاق زمني واحد أو أكثر تحدّد كيفية تطبيق الرسوم.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange 1..99 DateRange نطاق زمني يحدّد التواريخ التي سيتم فيها تطبيق العرض الترويجي.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start 0..1 Date تمثّل هذه السمة تاريخ البدء (استنادًا إلى المنطقة الزمنية للموقع)، وهو تاريخ مشمول في النطاق الزمني. يجب أن يكون هذا التاريخ قبل تاريخ end أو مطابقًا له. في حال عدم تحديد start، يكون النطاق الزمني غير محدود فعليًا من حيث تاريخ البدء.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end 0..1 Date تاريخ الانتهاء (استنادًا إلى المنطقة الزمنية للموقع)، شاملة، للنطاق الزمني. يجب أن يكون هذا التاريخ هو تاريخ start أو تاريخًا لاحقًا. إذا لم يتم تحديد end، يكون النطاق الزمني غير محدود فعليًا من حيث تاريخ الانتهاء.
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @days_of_week 0..1 string

أيام الأسبوع المسموح بها في النطاق الزمني في حال عدم تحديدها، يُسمح بجميع الأيام في النطاق الزمني. يحدّد كل حرف في السلسلة يومًا. على سبيل المثال، تحدّد القيمة "MTWHF" أنّه يُسمح بأيام الأسبوع في النطاق الزمني.

الأحرف الصالحة هي:

  • M ليوم الاثنين
  • T ليوم الثلاثاء
  • W ليوم الأربعاء
  • H ليوم الخميس
  • F ليوم الجمعة
  • S ليوم السبت
  • U ليوم الأحد

يمكن استخدام أي مجموعة من الأحرف.

أمثلة

رسوم البالغين

لا يمكن التعبير عن رسوم البالغين الإضافيين إلا كمبالغ ثابتة. يوضّح المثال التالي رسالة ExtraGuestCharges تحدّد رسومًا خاصة بالبالغين:

<?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>

في ما يلي المعدّلات المقابلة:

<?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>

عندما يبحث مستخدم عن أربعة بالغين على Google، سيكون السعر الإجمالي 170 = 120 + 50.

يأتي الرقم 120 من معدّل <BaseByGuestAmt> مع NumberOfGuests="3"، ويأتي الرقم 50 من AdultCharge amount="50".

رسوم الأطفال

يتم التعبير عن رسوم الأطفال في فئات عمرية تصل إلى 17 عامًا، ويمكن التعبير عنها بمبالغ ثابتة أو نسب مئوية أو خصومات.

يعرض المثال التالي رسالة ExtraGuestCharges تحدّد رسوم الأطفال:

<?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>

في ما يلي المعدّلات المقابلة:

<?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

قيود الشحن

جميع أنواع القيود اختيارية ويمكن استخدام أي مجموعة منها.

يعرض المثال التالي رسالة ExtraGuestCharges تحدّد القيود:

<?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>

توضّح الرسالة أعلاه أنّه يجب تحصيل رسوم من البالغين مقابل أي منتج يتضمّن نوع الغرفة "كوين" أو "كينغ" مع خطة الأسعار "free-wifi" أو "hot-breakfast" في الفترة من 1 سبتمبر 2020 إلى 14 سبتمبر 2020.

الرسوم المتداخلة

يعرض هذا القسم مثالاً على رسالة غير صالحة تحدّد رسومًا مختلفة للمجموعات نفسها من التواريخ والمنتجات.


<?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>

الرسالة أعلاه غير صالحة لأنّ <ExtraGuestCharge> الأولى تحدّد أنّ "queen" و "free-wifi" من 1 إلى 14 أيلول (سبتمبر) يجب أن تفرض رسومًا إضافية على البالغين تبلغ 50. يحدّد الشرط الثاني <ExtraGuestCharge> أنّه يجب تحصيل 20 دولارًا أمريكيًا إضافيًا عن البالغين الإضافيين في أي غرفة من فئة "كوين" أو "كينغ" مع أي من الميزات "خدمة Wi-Fi مجانية" أو "وجبة فطور ساخنة" خلال الفترة من 1 إلى 5 سبتمبر. هناك رسوم متداخلة مقابل "غرفة بسرير مزدوج كبير" و "خدمة Wi-Fi مجانية" من 1 إلى 5 سبتمبر، وهناك تعارض بين تحصيل 20 أو 50 دولارًا أمريكيًا مقابل شخص بالغ إضافي.

الردود

البنية

تستخدم رسالة ExtraGuestChargesResponse البنية التالية:

<?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>

العناصر والسمات

تتضمّن رسالة ExtraGuestChargesResponse العناصر والسمات التالية:

العنصر / @السمة عدد مرات الظهور النوع الوصف
ExtraGuestChargesResponse 1 Complex element العنصر الجذر الذي يشير إلى النجاح أو المشاكل في رسالة الطلب ExtraGuestCharges المستلَمة.
ExtraGuestChargesResponse / @timestamp 1 DateTime تاريخ إنشاء هذه الرسالة ووقته.
ExtraGuestChargesResponse / @id 1 string المعرّف الفريد من الرسالة المرتبطة ExtraGuestCharges.
ExtraGuestChargesResponse / @partner 1 string حساب الشريك لهذه الرسالة
ExtraGuestChargesResponse / Success 0..1 Success تشير إلى أنّه تمت معالجة الرسالة ExtraGuestCharges بنجاح بدون تحذيرات أو أخطاء أو حالات تعذُّر.

يجب أن يتضمّن كل رسالة إما <Success> أو <Issues>.

ExtraGuestChargesResponse / Issues 0..1 Issues حاوية لمشكلة واحدة أو أكثر حدثت أثناء معالجة رسالة ExtraGuestCharges.

يجب أن يتضمّن كل رسالة إما <Success> أو <Issues>.

ExtraGuestChargesResponse / Issues / Issue 1..n Issue تمثّل هذه السمة وصفًا للتحذير أو الخطأ أو العطل الذي حدث أثناء معالجة رسالة ExtraGuestCharges. يمكنك الاطّلاع على تفاصيل حول هذه المشاكل في رسائل الخطأ في حالة الخلاصة.
ExtraGuestChargesResponse / Issues / Issue / @code 1 integer معرّف المشكلة.
ExtraGuestChargesResponse / Issues / Issue / @status 1 enum

نوع المشكلة التي واجهتها.

القيم الصالحة هي warning وerror وfailure.

أمثلة

تم الإجراء بنجاح

في ما يلي ردّ على رسالة ExtraGuestCharges تمت معالجتها بنجاح.

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

المشاكل

في ما يلي ردّ على رسالة ExtraGuestCharges لم تتم معالجتها بسبب أخطاء.

<?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>