Удостоверяване
Достъпът се предоставя чрез партньорски акаунт, създаден от HMS. Партньорският акаунт получава apiKey и apiSecret, а HMS определя до кои хотели има достъп. Крайната точка за вход разменя тези идентификационни данни срещу токен, обвързан с хотела.
Вход и токен#
POST /external/public/login HTTP/1.1
Host: test.hms.gen.tr
Content-Type: application/x-www-form-urlencoded
apiKey=5y94tLmALIKDyUVdEPlAAjg5xWGQNgQtnALlV4%2BAm7Q%3D&apiSecret=a143d640…&hotelCode=1000{
"success": true,
"hotelCode": "1000",
"token": "eyJlbmREYXRlIjp7ImRhdGUiOiIyMDI2LTA5LTE1IDEwOjI0OjMxLjAwMDAwMCIs…",
"hotelSeoUrl": "demo-otel"
}| Поле | Описание |
|---|---|
apiKey | Партньорски ключ. Съдържа base64 символи, затова в тялото на форма трябва да е URL-кодиран (+ → %2B, = → %3D). HTTP библиотеките правят това вместо вас. |
apiSecret | Таен ключ. Съхранявайте го само на сървъра; никога не го включвайте в браузърно или мобилно приложение. |
hotelCode | HMS ID на хотела. Ако партньорът не е оторизиран за хотела, се връща hotel_permission_is_not_found. |
hotelSeoUrl | SEO адресът на хотела. Използва се вместо hotelCode само от собствената резервационна система на HMS; интеграциите на трети страни изпращат hotelCode. |
Заглавка Bearer#
Всички крайни точки освен входа очакват токена в заглавката Authorization:
GET /external/currencies HTTP/1.1
Host: test.hms.gen.tr
Authorization: Bearer eyJlbmREYXRlIjp7ImRhdGUiOiIyMDI2LTA5LTE1IDEwOjI0OjMxLjAwMDAwMCIs…Ако заглавката липсва, е в неправилен формат (без префикс Bearer) или токенът е непознат, API връща 401:
{
"success": false,
"error": "Authentication required"
}Валидност и подновяване на токена#
- Токенът е валиден 7 дни. Подновете го, като влезете отново преди изтичането му; входът е евтина операция и може да се повтаря за същия хотел.
- Не анализирайте съдържанието на токена. Въпреки че е base64-кодирана структура, форматът му не е гарантиран; съхранявайте го и го предавайте като непрозрачен низ.
- При
401влезте още веднъж и повторете заявката; втори401означава, че двойката ключове или оторизацията за хотела са променени.
Контекст на хотела#
Токенът е обвързан с един хотел. Параметърът hotelID в крайните точки трябва да съвпада с този хотел; заявка за друг хотел води до грешка при оторизацията или до празни резултати. При интеграции с няколко хотела получавайте отделен токен за всеки хотел и го кеширайте поотделно.
Грешки при вход#
| message | Значение |
|---|---|
partner_is_not_found | Двойката apiKey / apiSecret не съвпада. Проверете ключовете и URL кодирането. |
hotel_is_not_found | Няма хотел, който да съответства на hotelSeoUrl. |
hotel_permission_is_not_found | Партньорът не е оторизиран за този хотел или оторизацията е неактивна. Свържете се с поддръжката на HMS. |
Тези грешки се връщат с HTTP 200, success: false и token: null.