المصادقة
يتم الوصول إلى Online Booking API ببيانات اعتماد الشريك التي تصدرها HMS. تستبدل نقطة نهاية تسجيل الدخول apiKey وapiSecret برمز مميز يُرسَل في ترويسة Authorization: Bearer مع كل طلب آخر. راجع دليل المصادقة للاطلاع على التفاصيل.
تسجيل الدخول والحصول على رمز مميز#
POST
/external/public/loginلا تتطلب مصادقة · المتن: application/x-www-form-urlencoded أو multipart/form-data
تتحقق من بيانات اعتماد الشريك وتُصدر رمزًا مميزًا إذا كان الشريك مخوّلًا للوصول إلى الفندق. يرتبط الرمز بفندق واحد؛ لذا سجّل الدخول بشكل منفصل لكل فندق.
حقول النموذج
apiKeystringإلزاميمفتاح الشريك الصادر عن HMS.
apiSecretstringإلزاميالمفتاح السري للشريك. احتفظ به على الخادم فقط.
hotelCodeintegerإلزاميمعرّف الفندق في HMS (
hotelID). يجب أن يكون الشريك مخوّلًا للوصول إلى هذا الفندق.hotelSeoUrlstringالمعرّف النصي للفندق (SEO slug) في HMS. لا يستخدمه بدلًا من
hotelCode إلا محرك الحجز الخاص بـ HMS؛ أما تكاملات الأطراف الثالثة فيجب أن ترسل hotelCode.الاستجابة
200 الرمز المميز وبيانات الفندق. الرمز صالح لمدة 7 أيام؛ جدّده بتسجيل الدخول مجددًا قبل انتهاء صلاحيته.
successbooleanمؤشر النتيجة.
hotelCodestringمعرّف الفندق المرتبط به الرمز المميز.
tokenstringرمز Bearer. تعامل معه كقيمة معتمة ولا تحاول تحليله.
hotelSeoUrlstring | nullالمعرّف النصي للفندق (SEO 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"
}