Регистрация субагента в MAG по API

Последние изменения: 06.12.2019

Авторизация

В 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. Агентство;
  2. Клиент-Покупатель (юр. лицо);
  3. Оператор;
  4. Фирма-Владелец (может быть только 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

]

}

]

}

]

}

]

}

Помогла ли вам статья?