การตอบกลับเมื่อเกิดข้อผิดพลาด
Hotspot API ให้ผลลัพธ์สองแบบ คือ การยืนยันตัวตนไม่สำเร็จ (HTTP 401) และการตอบกลับที่สำเร็จ (HTTP 200) รายชื่อผู้เข้าพักที่ว่างเปล่าไม่ถือเป็นข้อผิดพลาด ด้านล่างนี้คือสถานการณ์ที่คุณอาจพบและสิ่งที่ต้องทำในแต่ละกรณี
รหัสสถานะ HTTP#
| รหัส | เนื้อหา | ความหมายและสิ่งที่ต้องทำ |
|---|---|---|
200 | {"success": 1, "otelde": [...]} | สำเร็จ ประมวลผลรายการได้เลย |
200 | {"success": 1, "otelde": []} | สำเร็จ แต่ไม่มีผู้เข้าพักในโรงแรม ดูหมายเหตุเรื่องรายการว่างด้านล่าง |
401 | {"success": 0} | ไม่มีเฮดเดอร์ ApiKey หรือไม่รู้จักคีย์ อย่าลองใหม่ ให้ตรวจสอบคีย์และแจ้งผู้ดูแลระบบ |
404 | หน้าข้อผิดพลาด | พาธไม่ถูกต้อง ตรวจสอบว่าพาธเป็น /public/json/customer/inhotel ทุกตัวอักษร |
405 | หน้าข้อผิดพลาด | ใช้เมธอดอื่นที่ไม่ใช่ POST (เช่น GET จากเบราว์เซอร์) |
5xx / หมดเวลา | — | ข้อผิดพลาดชั่วคราวของเซิร์ฟเวอร์หรือเครือข่าย ให้ลองใหม่โดยเพิ่มระยะรอขึ้นเรื่อย ๆ (30 วินาที 1 นาที 5 นาที) และระหว่างนั้นให้ใช้รายการล่าสุดที่ดึงสำเร็จต่อไป |
รายการว่าง#
otelde: [] หมายถึงไม่มีผู้เข้าพักที่เช็กอินอยู่ในโรงแรม ซึ่งเป็นเรื่องปกติสำหรับโรงแรมขนาดเล็กในช่วงนอกฤดูกาล อย่างไรก็ตาม หากรายการที่เคยมีข้อมูลในการสอบถามครั้งก่อนกลับว่างเปล่าขึ้นมาทันที มักบ่งชี้ถึงความผิดพลาดในการปฏิบัติงานฝั่งโรงแรม (เช่น เช็กเอาต์แบบกลุ่มผิดพลาด หรือเปลี่ยนสถานะการจอง) ก่อนปิดบัญชี Wi-Fi ทั้งหมด ให้ยืนยันก่อนว่ารายการว่างเปล่าในการสอบถามสองครั้งติดกัน
การลองใหม่และการหมดเวลา#
- ตั้งเวลาหมดเวลาของคำขอไว้ที่ 10 วินาที แม้แต่โรงแรมขนาดใหญ่ รายการก็จะส่งกลับมาภายในเวลานี้
- ลองใหม่เมื่อเกิด
5xxและข้อผิดพลาดของเครือข่าย แต่อย่าลองใหม่เมื่อได้รับ401,404หรือ405เพราะเป็นข้อผิดพลาดด้านการตั้งค่า - เก็บรายการล่าสุดที่ดึงสำเร็จไว้ขณะที่การสอบถามล้มเหลว และปิดบัญชีเฉพาะผู้เข้าพักที่หายไปจากรายการในการตอบกลับที่สำเร็จเท่านั้น
- นับจำนวนครั้งที่ล้มเหลวติดกัน และแจ้งผู้ดูแลระบบเมื่อเกินเกณฑ์ที่กำหนด (เช่น 15 นาที)
สถานการณ์ที่พบบ่อย#
| สถานการณ์ | สาเหตุที่เป็นไปได้ | สิ่งที่ต้องทำ |
|---|---|---|
| ผู้เข้าพักไม่อยู่ในรายการ | แผนกต้อนรับยังไม่ได้เช็กอินให้ผู้เข้าพัก การจองถูกยกเลิก ผู้เข้าพักไม่ได้ถูกระบุสถานะ “อยู่ในโรงแรม” หรือเช็กเอาต์ไปแล้ว | แสดงข้อความ “หมายเลขห้องและนามสกุลไม่ตรงกัน” บนพอร์ทัล และแนะนำให้ผู้เข้าพักติดต่อแผนกต้อนรับ ไม่จำเป็นต้องดึงรายการใหม่ทันที เพราะผู้เข้าพักจะปรากฏในการซิงค์ครั้งถัดไป |
| มีหลายรายการสำหรับห้องเดียวกัน | มีผู้เข้าพักมากกว่าหนึ่งคนในห้อง และแต่ละคนเป็นรายการแยกกัน | เป็นเรื่องปกติ ให้เปิดบัญชีแยกตามผู้เข้าพัก (unique) |
identityNumber ว่าง | ผู้เข้าพักลงทะเบียนโดยไม่มีข้อมูลเอกสารประจำตัว | ใช้นามสกุล + วันเกิดในการจับคู่แทน เว้นฟิลด์นี้ว่างไว้ในบันทึกตามกฎหมาย 5651 และผูกบันทึกเข้ากับ unique |
roomName ไม่ตรงกัน | ผู้เข้าพักพิมพ์ “0104” หรือ “Room 104” แทน “104” และค่านี้เป็นสตริง | ปรับรูปแบบค่าทั้งสองฝั่งให้เป็นมาตรฐานก่อนเปรียบเทียบ และอย่าแปลงเป็นตัวเลข |
checkout ผ่านไปแล้วแต่ผู้เข้าพักยังอยู่ในรายการ | ผู้เข้าพักขยายเวลาเข้าพักหรือเช็กเอาต์ล่าช้า และแผนกต้อนรับยังไม่ได้ดำเนินการ | เปิดการเข้าถึงไว้ตราบที่ผู้เข้าพักยังอยู่ในรายการ และอัปเดตเวลาสิ้นสุดเซสชันเมื่อ checkout เปลี่ยน |