รหัสข้อผิดพลาด
ข้อผิดพลาดมีสามรูปแบบ ได้แก่ ข้อผิดพลาดในการยืนยันตัวตนเป็น 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 | ข้อมูล Virtual POS | โรงแรมยังไม่ได้ตั้งค่าผู้ให้บริการชำระเงิน |
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 จะมีฟิลด์ Error แทน Success: true:
{
"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. | — | เกิดข้อผิดพลาดขณะบันทึก (ID ประเภทห้องพัก/แผนอาหารไม่ถูกต้อง วันที่ไม่สอดคล้องกัน) |
| Failed to parse information. | — | โครงสร้างขาดฟิลด์ที่คาดไว้ |
แนวทางการลองใหม่#
- 401: เข้าสู่ระบบอีกครั้งแล้วส่งคำขอใหม่
- 500 และข้อผิดพลาดของเครือข่าย: ลองใหม่ได้สูงสุด 3 ครั้ง โดยเว้นระยะ 1 วินาที 2 วินาที และ 4 วินาที เมื่อลองส่งการจองใหม่ ให้ใช้
IDเดิม เพราะBookที่ใช้รหัสซึ่งมีอยู่แล้วจะอัปเดตรายการเดิมแทนการสร้างรายการซ้ำ - success: false: ไม่ต้องลองใหม่ ให้แก้ไขพารามิเตอร์หรือเสนอทางเลือกอื่นให้ผู้เข้าพัก
- เมื่อแจ้งฝ่ายสนับสนุน ให้แนบคำขอฉบับเต็ม (ปิดบังข้อมูลลับและข้อมูลบัตร) การตอบกลับ และเวลาที่ส่ง