Авторизация
В Mag.travel реализована авторизация по протоколу OAuth
Протокол OAuth обеспечивает авторизацию третьей стороне, позволяя таким образом работать с API Mag.travel.
Иногда, полноценная авторизация агентства программным способом не удобна или невозможна в принципе. Это может быть использовано при внешнем взаимодействии.
Для получения доступа к API необходимо получить имя пользователя для доступа к API и его clientSecret
Получение токена
Пример запроса для получения токена OAuth:
Получения токенаOAuth. | |
Запрос: | POST https://2015.mag.travel/tourclient/token |
Headers: | Content-Type: application/x-www-form-urlencoded Referer: localhost |
Body: | grant_type : mag_oauth_grant name — Уникальное имя пользователя OAuth clientSecret – Полученный при регистрации secretKey |
Результат: | Объект json с полями: access_token —String, токен. token_type — String, Тип токена. Обычно это "bearer", expires_in — Int,время жизни токена |
Отправка запроса к API Mag.Travel.
Пример запроса к API с полученным токеном OAuth:
Запрос к API с полученным токеном. | |
Headers: | Authorization: "Bearer %TOKEN%" - где %TOKEN% - это ранее полученный токен |
Проверка токена
Иногда, бывает полезно удостовериться заранее, что токен актуален и его срок действия не истек :
Получение токена OAuth. | |
Запрос: | GET https://2015.mag.travel/tourclient/api/OAuth/CheckToken |
Headers: | Authorization: "Bearer %TOKEN%" - где %TOKEN% - это ранее полученный токен |
Результат: | Объект json с полями: Result – bool, действителен ли токен |
Запрос на создание партнёра
Для создания партнера нужно отправить POST запрос на https://2015.mag.travel/TourClient/api/PartnerApi/UpdatePartner с заголовком: Authorization: "Bearer %TOKEN%" - где %TOKEN% - это ранее полученный токен.
Полное описание запроса можно посмотреть по ссылке - https://2015.mag.travel/TourClient/dev/Help/Api/POST-api-PartnerApi-UpdatePartner
Для создания субагента в MAG используется запрос на создание партнёра. Партнёром может быть:
- Агентство;
- Клиент-Покупатель (юр. лицо);
- Оператор;
- Фирма-Владелец (может быть только 1 в него можно попасть через карточку своей компании)
Для сохранения партнера с признаком агентства нужно передать флаг IsAgency: true
Существует возможность ограничить права пользователя, который будет создан при создании партнёра. Для этого можно использовать параметр ActivityType (для партнёра или для офиса):
0 – Включен – (пользователь сможет войти в систему и начать работу сразу после регистрации)1 - Запрещен вход в систему
2 - Разрешен только просмотр
3 - Разрешена только работа напрямую с оператором (без создания заявок через центр бронирования)
При создании пользователя можно передать массив ролей. У пользователя должна быть хотя бы одна роль для того, что бы у него были права на что-либо. Разрешения ролей настраиваются в Маг в разделе Администрирование (при создании из Апи в объекте пользователя передаётся массив RoleIds с нужными ролями).
В дальнейшем можно будет изменить статус партнёра\офиса в Маг – поле «Статус ЕРЦ»
Пример запроса:
{
"Name": "6 21052019Мастер Алёна",
"NameFull": "6 21052019Мастер Алёна",
"NameLat": "",
"RealAddress": "г Астрахань",
"Phones": [],
"Emails": [],
"IsAgency": true,
"ActivityType": 2,
"CheckByIdentificationNumber": false,
"LegalEntities": [{
"Name": "тест#03 юр.лицо 21.05.2019",
"PartnerName": "6 21052019Мастер Алёна",
"NameFull": "6 21052019Мастер Алёна",
"BossName": "",
"BossPosition": "",
"BossName_RP": "",
"BossPosition_RP": "",
"Attorney": "",
"RegisterSeries": "123455",
"RegisterNumber": "546545622",
"OGRN": "5461561453-2245",
"INN": "064501211",
"KPP": "12346841",
"OKPO": "86761465",
"OKOHX": "86761452412",
"Address": "",
"PostAddress": "Почтовый",
"LegalAddress": "Астрахань юридическая",
"Account": "",
"Bank": "",
"KS": "86741845818146",
"BIK": "7897686",
"Description": "описание",
"IsMain": true,
"IsActive": true,
"phones": [{
"tagscontactid": 9,
"value": "+79689299869",
"isdefault": true
}
],
"emails": [],
"Departments": [{
"Name": "15052019 3",
"officetypesids": [5],
"phones": [{
"tagscontactid": 9,
"value": "+79689299869",
"isdefault": true
}
],
"emails": [{
"tagscontactid": 7,
"value": "kazim@gmail.com",
"isDefault": true
}
],
"Users": [{
"Login": "kazimalena993",
"Password": "12",
"Name": "alyona",
"FirstName": "alyona2",
"CanLogin": true,
"IsNeedPassword": true,
"DepartmentId": 0,
"AdditionalValues": [
],
"RoleIds": [
2
]
}
]
}
]
}
]
}