Xác thực
Để truy cập Online Booking API, bạn dùng thông tin xác thực đối tác do HMS cấp. Endpoint đăng nhập đổi apiKey và apiSecret lấy một token; token này được gửi dưới dạng Authorization: Bearer trong mọi yêu cầu khác. Xem hướng dẫn Xác thực để biết chi tiết.
Đăng nhập và lấy token#
POST
/external/public/loginKhông cần xác thực · Nội dung: application/x-www-form-urlencoded hoặc multipart/form-data
Xác minh thông tin xác thực đối tác và cấp token nếu đối tác được ủy quyền cho khách sạn. Token gắn với một khách sạn; với mỗi khách sạn, bạn cần đăng nhập riêng.
Trường form
apiKeystringbắt buộcKhóa đối tác do HMS cấp.
apiSecretstringbắt buộcKhóa bí mật của đối tác. Chỉ lưu ở phía máy chủ.
hotelCodeintegerbắt buộcID HMS của khách sạn (
hotelID). Đối tác phải được ủy quyền cho khách sạn này.hotelSeoUrlstringSlug SEO của khách sạn trong HMS. Chỉ công cụ đặt phòng của chính HMS dùng trường này thay cho
hotelCode; các tích hợp bên thứ ba nên gửi hotelCode.Phản hồi
200 Token và thông tin khách sạn. Token có hiệu lực 7 ngày; hãy gia hạn bằng cách đăng nhập lại trước khi hết hạn.
successbooleanCờ kết quả.
hotelCodestringID khách sạn mà token được gắn với.
tokenstringBearer token. Hãy xem token như một chuỗi nguyên khối; không phân tích nội dung của nó.
hotelSeoUrlstring | nullSlug SEO của khách sạn.
Phản hồi lỗi
- 200
partner_is_not_found— cặp khóa không khớp;hotel_is_not_found— không có khách sạn nào ứng vớihotelSeoUrl;hotel_permission_is_not_found— đối tác không được ủy quyền cho khách sạn này hoặc quyền đã bị vô hiệu hóa.
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"
}