رموز الأخطاء
تصل الأخطاء بثلاثة أشكال: أخطاء المصادقة بحالة HTTP 401، وأخطاء قواعد العمل داخل استجابة HTTP 200 مع success: false، وأخطاء إرسال الحجز في BookingPushRS.Error. تسرد هذه الصفحة جميع الرموز.
أخطاء المصادقة#
| HTTP | الاستجابة | السبب |
|---|---|---|
| 401 | {"success": false, "error": "Authentication required"} | الرمز المميز مفقود أو غير معروف، أو أن صيغة Bearer غير صحيحة. |
| 200 | message: partner_is_not_found | تسجيل الدخول: زوج المفاتيح غير مطابق. |
| 200 | message: hotel_is_not_found | تسجيل الدخول: لا يوجد فندق مطابق لـ hotelSeoUrl. |
| 200 | message: hotel_permission_is_not_found | تسجيل الدخول: الشريك غير مخوّل للوصول إلى الفندق. |
رموز message#
رموز نصية بصيغة snake_case، تُعاد مع success: false.
| message | نقطة النهاية | الوصف |
|---|---|---|
hotel_id_is_not_found | معظم نقاط النهاية | لم يُرسَل hotelID. |
start_date_is_not_found / end_date_is_not_found | التوافر | معامل التاريخ مفقود. |
online_cupon_is_not_found | القسيمة | الرمز غير معروف أو غير نشط أو منتهي الصلاحية أو غير متاح. |
mail_host_is_not_found | إعدادات البريد الإلكتروني | لم يُضبط خادم SMTP لقناة الحجز عبر الإنترنت. |
hotel_company_info_could_not_found | بيانات نقطة البيع الافتراضية | لم يُضبط مزوّد دفع للفندق. |
bank_info_is_not_found | الدفع (النوع 3) | لا يوجد حساب بنكي مفعّل للبيع عبر الإنترنت. |
required_input_info_not_submitted | الدفع (النوع 10) | أحد الحقول الإلزامية مفقود؛ وتسرد errors[] الحقول المعنية. |
country_info_sent_incorrectly | الدفع (النوع 10) | قيمة countryID غير موجودة في قائمة الدول. |
there_is_missing_info_in_the_shopping_cart | الدفع (النوع 10) | ينقص أحدَ عناصر السلة id أو name أو piece أو price؛ وتشير errors[] إلى العنصر المعني. |
رموز أخطاء قائمة الغرف#
تعيد قائمة الغرف (POST /external/online/roomType) رمزًا رقميًا في errorCode ورسالة مقروءة في errorMessage. تُترجَم الرسالة وفق المعامل language؛ لذا ابنِ منطق شيفرتك على errorCode.
| errorCode | المعنى | ما العمل |
|---|---|---|
10001 | الفندق غير موجود | تحقق من hotelID. |
10002 | معامل مفقود (hotelID، startDate، endDate، adultCount) | أرسل الحقول الإلزامية. |
10003 | الفندق مغلق أمام البيع عبر الإنترنت | يجب على الفندق تفعيل قناة الحجز عبر الإنترنت في لوحة التحكم. |
10004 | لا يوجد نوع غرفة متاح للقنوات | يجب على الفندق إتاحة أنواع الغرف للبيع عبر الإنترنت. |
10022 | معاملات غير صالحة | تاريخ الوصول اليوم أو بعده، وتاريخ المغادرة بعد تاريخ الوصول، و30 ليلة كحد أقصى، ومن 1 إلى 40 بالغًا، ومن 0 إلى 10 أطفال. |
20001 | لا يوجد توافر كافٍ للبالغين | اقترح تواريخ أخرى أو عددًا مختلفًا من النزلاء. |
20002 | لا يوجد توافر كافٍ للأطفال | لم تتبقَّ غرف تتسع للأطفال. |
20003 / 20004 | لا يوجد توافر كافٍ للبالغين والأطفال | السعة الإجمالية لا تلبي الطلب. |
عندما يكون هناك توافر لكن يتعذر بيع نوع غرفة معيّن، تكون قيمة roomCount له 0 ويرد السبب في roomRestrictionMessage: closed_to_checkin، closed_to_checkout، passive_sales، minimum_stay، maximum_stay، closed_to_arrival، price_not_found.
أخطاء إرسال الحجز#
بدلًا من Success: true، يحمل BookingPushRS الحقل Error:
{
"BookingPushRS": {
"Error": "Could not register.",
"BookingConfirmNumbers": [
{
"confirmTime": 1755500000,
"bookingID": 0,
"bookingType": "Book",
"HMS_ID": null
}
]
}
}| Error | الرمز | السبب |
|---|---|---|
| No available data could be found. | 01 | المتن فارغ أو تعذّر تحليل JSON، أو أن Bookings[0].hotelID مفقود. |
| Hotel registration not found on HMS. | 02 | الفندق غير مرتبط بقناة الحجز عبر الإنترنت، أو أن القناة غير نشطة. |
| Could not register. | — | خطأ أثناء الحفظ (معرّف نوع غرفة أو نوع إقامة غير صالح، أو تواريخ غير متسقة). |
| Failed to parse information. | — | تفتقد البنية حقولًا متوقعة. |
إرشادات إعادة المحاولة#
- 401: سجّل الدخول مرة أخرى وأعد إرسال الطلب.
- 500 وأخطاء الشبكة: حتى 3 محاولات بعد 1 و2 و4 ثوانٍ. عند إعادة محاولة إرسال حجز، استخدم قيمة
IDنفسها؛ فإرسالBookبرمز موجود يحدّث السجل بدلًا من إنشاء حجز مكرر. - success: false: لا تُعِد المحاولة؛ بل صحّح المعامل أو اعرض على النزيل بديلًا.
- أرفق في تذاكر الدعم الطلب كاملًا (مع إخفاء المفاتيح السرية وبيانات البطاقات) والاستجابة والوقت.