الرسوم الإضافية للضيوف

يمكن تعديل الأسعار المُرسلة من خلال <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 على العناصر والسمات التالية:

العنصر / @Attribute عدد مرات الظهور النوع الوصف
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> في خلاصة بيانات الفنادق. مُدرَج أيضًا رقم تعريف الفندق في مركز إدارة معلومات الفنادق.
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 تحدّد خطة أسعار. يتم تحديد خطة الأسعار من خلال مجموعة تشمل الحزمة والأسعار ومدى التوفّر، على النحو المحدّد في رسائل المعاملات (بيانات الموقع) و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>

توضّح الرسالة أعلاه أنّه يجب تحصيل رسوم من البالغين مقابل أي منتج من نوع الغرفة "كوين" أو "كينغ" ضمن خطة الأسعار "Wi-Fi مجاني" أو "إفطار ساخن" خلال التواريخ الممتدة من 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> يحدد أن "الملكة" و "خدمة Wi-Fi مجانية" في الفترة من 1 إلى 14 سبتمبر يجب تحصيل رسوم إضافية من البالغين 50 شخصًا. أمّا السمة <ExtraGuestCharge> الثانية، فتشير إلى أنّه في الفترة بين 1 و5 سبتمبر، يتم فرض رسوم على البالغين مقابل 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 على العناصر والسمات التالية:

العنصر / @Attribute عدد مرات الظهور النوع الوصف
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>