การยืนยันตัวตน
การเข้าถึง Online Booking API ใช้ข้อมูลรับรองของพาร์ทเนอร์ที่ HMS ออกให้ เอนด์พอยต์เข้าสู่ระบบจะแลก apiKey และ apiSecret เป็นโทเค็น ซึ่งต้องส่งเป็น Authorization: Bearer ในทุกคำขออื่น ดูรายละเอียดได้ที่คู่มือการยืนยันตัวตน
เข้าสู่ระบบและรับโทเค็น#
POST
/external/public/loginไม่ต้องยืนยันตัวตน · เนื้อหา: application/x-www-form-urlencoded หรือ multipart/form-data
ตรวจสอบข้อมูลรับรองของพาร์ทเนอร์ และออกโทเค็นให้หากพาร์ทเนอร์ได้รับสิทธิ์สำหรับโรงแรมนั้น โทเค็นผูกกับโรงแรมเดียว หากมีหลายโรงแรมให้เข้าสู่ระบบแยกกันสำหรับแต่ละโรงแรม
ฟิลด์แบบฟอร์ม
apiKeystringจำเป็นคีย์พาร์ทเนอร์ที่ HMS ออกให้
apiSecretstringจำเป็นคีย์ลับของพาร์ทเนอร์ เก็บไว้ฝั่งเซิร์ฟเวอร์เท่านั้น
hotelCodeintegerจำเป็นID ของโรงแรมใน HMS (
hotelID) พาร์ทเนอร์ต้องได้รับสิทธิ์สำหรับโรงแรมนี้hotelSeoUrlstringSEO slug ของโรงแรมใน HMS ใช้แทน
hotelCode เฉพาะในระบบจองห้องพักของ HMS เอง การเชื่อมต่อจากบุคคลที่สามควรส่ง hotelCodeการตอบกลับ
200 โทเค็นและข้อมูลโรงแรม โทเค็นมีอายุ 7 วัน ให้ต่ออายุด้วยการเข้าสู่ระบบใหม่ก่อนหมดอายุ
successbooleanแฟล็กผลลัพธ์
hotelCodestringID ของโรงแรมที่โทเค็นผูกอยู่
tokenstringBearer token ให้ถือเป็นค่าทึบ (opaque) และไม่ต้องแยกวิเคราะห์เนื้อหา
hotelSeoUrlstring | nullSEO slug ของโรงแรม
การตอบกลับเมื่อเกิดข้อผิดพลาด
- 200
partner_is_not_found— คู่คีย์ไม่ตรงกัน;hotel_is_not_found— ไม่พบโรงแรมสำหรับhotelSeoUrl;hotel_permission_is_not_found— พาร์ทเนอร์ไม่ได้รับสิทธิ์สำหรับโรงแรมนี้ หรือสิทธิ์ถูกปิดใช้งาน
curl "https://test.hms.gen.tr/external/public/login" \
-d "apiKey=5y94tLmALIKDyUVdEPlAAjg5xWGQNgQtnALlV4+Am7Q=" \
-d "apiSecret=a143d6408634696b811def06d236682950cacb9761aa8ad5827da4015bda4b19" \
-d "hotelCode=1000"const res = await fetch("https://test.hms.gen.tr/external/public/login", {
method: "POST",
body: new URLSearchParams([
["apiKey", "5y94tLmALIKDyUVdEPlAAjg5xWGQNgQtnALlV4+Am7Q="],
["apiSecret", "a143d6408634696b811def06d236682950cacb9761aa8ad5827da4015bda4b19"],
["hotelCode", "1000"]
])
});
const data = await res.json();$ch = curl_init('https://test.hms.gen.tr/external/public/login');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query([
'apiKey' => '5y94tLmALIKDyUVdEPlAAjg5xWGQNgQtnALlV4+Am7Q=',
'apiSecret' => 'a143d6408634696b811def06d236682950cacb9761aa8ad5827da4015bda4b19',
'hotelCode' => '1000',
]),
]);
$data = json_decode(curl_exec($ch), true);{
"success": true,
"hotelCode": "1000",
"token": "eyJlbmREYXRlIjp7ImRhdGUiOiIyMDI2LTA5LTE1IDEwOjI0OjMxLjAwMDAwMCIsInRpbWV6b25lX3R5cGUiOjMsInRpbWV6b25lIjoiRXVyb3BlL0lzdGFuYnVsIn0sInRva2VuIjoiM2tkOXNscTJwbTh2eHI0dHp5Nm53YjFoYzdmajVnYTAiLCJob3RlbElEIjoxMDAwLCJ1c2VySUQiOjQyLCJkYXRlIjp7ImRhdGUiOiIyMDI2LTA5LTA4IDEwOjI0OjMxLjAwMDAwMCJ9fQ==",
"hotelSeoUrl": "demo-otel"
}{
"success": false,
"token": null,
"message": "hotel_permission_is_not_found"
}