کدهای خطا
خطاها به سه شکل برمیگردند: خطاهای احراز هویت با 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.
خطاهای ارسال رزرو#
در این حالت BookingPushRS بهجای Success: true فیلد 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: تلاش مجدد نکنید؛ پارامتر را اصلاح کنید یا گزینه دیگری به مهمان پیشنهاد دهید.
- در تیکتهای پشتیبانی، درخواست کامل (با کلیدهای محرمانه و داده کارت پوشاندهشده)، پاسخ و زمان را ضمیمه کنید.