Mã lỗi
Lỗi được trả về theo ba dạng: lỗi xác thực dưới dạng HTTP 401, lỗi quy tắc nghiệp vụ nằm trong HTTP 200 kèm success: false, và lỗi gửi đặt phòng trong BookingPushRS.Error. Trang này liệt kê mọi mã lỗi.
Lỗi xác thực#
| HTTP | Phản hồi | Nguyên nhân |
|---|---|---|
| 401 | {"success": false, "error": "Authentication required"} | Token bị thiếu, không xác định hoặc định dạng Bearer không đúng. |
| 200 | message: partner_is_not_found | Đăng nhập: cặp khóa không khớp. |
| 200 | message: hotel_is_not_found | Đăng nhập: không có khách sạn nào ứng với hotelSeoUrl. |
| 200 | message: hotel_permission_is_not_found | Đăng nhập: đối tác không được ủy quyền cho khách sạn. |
Mã message#
Mã dạng văn bản viết theo kiểu snake_case, được trả về cùng với success: false.
| message | Endpoint | Mô tả |
|---|---|---|
hotel_id_is_not_found | Hầu hết | Không gửi hotelID. |
start_date_is_not_found / end_date_is_not_found | Phòng trống | Thiếu tham số ngày. |
online_cupon_is_not_found | Mã giảm giá | Mã không tồn tại, không hoạt động, đã hết hạn hoặc không dùng được. |
mail_host_is_not_found | Cài đặt email | Chưa cấu hình SMTP cho kênh trực tuyến. |
hotel_company_info_could_not_found | Thông tin POS ảo | Khách sạn chưa cấu hình nhà cung cấp thanh toán. |
bank_info_is_not_found | Thanh toán (hình thức 3) | Không có tài khoản ngân hàng nào được bật cho bán trực tuyến. |
required_input_info_not_submitted | Thanh toán (hình thức 10) | Thiếu trường bắt buộc; errors[] liệt kê các trường bị thiếu. |
country_info_sent_incorrectly | Thanh toán (hình thức 10) | countryID không có trong danh sách quốc gia. |
there_is_missing_info_in_the_shopping_cart | Thanh toán (hình thức 10) | Một mục trong giỏ hàng thiếu id, name, piece hoặc price; errors[] chỉ ra mục đó. |
Mã lỗi danh sách phòng#
Danh sách phòng (POST /external/online/roomType) trả về errorCode dạng số và errorMessage dễ đọc. Thông báo được dịch theo tham số language; hãy viết mã xử lý dựa trên errorCode.
| errorCode | Ý nghĩa | Cần làm gì |
|---|---|---|
10001 | Không tìm thấy khách sạn | Kiểm tra hotelID. |
10002 | Thiếu tham số (hotelID, startDate, endDate, adultCount) | Gửi các trường bắt buộc. |
10003 | Khách sạn đóng bán trực tuyến | Khách sạn phải bật kênh trực tuyến trong bảng quản trị. |
10004 | Không có loại phòng nào mở cho các kênh | Khách sạn phải mở bán trực tuyến cho các loại phòng. |
10022 | Tham số không hợp lệ | Ngày nhận phòng từ hôm nay trở đi, ngày trả phòng sau ngày nhận phòng, tối đa 30 đêm, 1–40 người lớn, 0–10 trẻ em. |
20001 | Không đủ phòng trống cho người lớn | Gợi ý ngày hoặc số khách khác. |
20002 | Không đủ phòng trống cho trẻ em | Không còn phòng có sức chứa dành cho trẻ em. |
20003 / 20004 | Không đủ phòng trống cho người lớn và trẻ em | Tổng sức chứa không đáp ứng được yêu cầu. |
Khi vẫn còn phòng trống nhưng một loại phòng cụ thể không thể bán, roomCount của loại phòng đó bằng 0 và lý do nằm trong roomRestrictionMessage: closed_to_checkin, closed_to_checkout, passive_sales, minimum_stay, maximum_stay, closed_to_arrival, price_not_found.
Lỗi gửi đặt phòng#
Thay vì Success: true, BookingPushRS chứa trường Error:
{
"BookingPushRS": {
"Error": "Could not register.",
"BookingConfirmNumbers": [
{
"confirmTime": 1755500000,
"bookingID": 0,
"bookingType": "Book",
"HMS_ID": null
}
]
}
}| Error | Mã | Nguyên nhân |
|---|---|---|
| No available data could be found. | 01 | Nội dung trống hoặc không phân tích được JSON; thiếu Bookings[0].hotelID. |
| Hotel registration not found on HMS. | 02 | Khách sạn chưa liên kết với kênh trực tuyến, hoặc kênh không hoạt động. |
| Could not register. | — | Lỗi khi lưu (ID loại phòng/gói ăn không hợp lệ, ngày tháng không nhất quán). |
| Failed to parse information. | — | Cấu trúc thiếu các trường cần thiết. |
Hướng dẫn thử lại#
- 401: đăng nhập lại một lần và thử lại yêu cầu.
- 500 và lỗi mạng: tối đa 3 lần thử, cách nhau 1 giây, 2 giây, 4 giây. Khi thử lại việc gửi đặt phòng, hãy dùng lại cùng
ID; một yêu cầuBookvới mã đã tồn tại sẽ cập nhật bản ghi thay vì tạo bản trùng. - success: false: không thử lại; hãy sửa tham số hoặc đề xuất phương án khác cho khách.
- Khi gửi yêu cầu hỗ trợ, hãy kèm theo toàn bộ yêu cầu (đã che khóa bí mật và dữ liệu thẻ), phản hồi và thời điểm gửi.