Auth API — это протокол авторизации клиента, который использует сервер чата для авторизации клиента во внешней системе (CRM/ДБО).
...
Протокол авторизации
- Получение токена. Браузер или мобильное приложение получают или генерируют токен клиента для авторизации в чате. Токен — это любая строка. Например, это может быть токен текущей сессии.
- Передача токена в SDK. При инициализации SDK чата (виджета, мобильных SDK) браузер или мобильное приложение передает в него токен клиента.
- Запрос авторизации по токену. SDK чата отправляет запрос на авторизацию клиента на сервер чата.
- Запрос карточки клиента. Сервер чата получает токен и отправляет этот токен в сервис авторизации для авторизации клиента и получение его карточки. Сервисом авторизации может выступать CRM, ДБО и т.д.
- Возврат карточки клиента. Сервис авторизации проверяет токен клиента и возвращает карточку клиента или ошибку.
- Сохранение информации о клиенте. Сервер чата сохраняет карточку клиента локально.
- Возврат сессии авторизации в чате. Сервер чата создает сессию авторизации клиента в чате и возвращает ее в SDK.
- Авторизация клиента в SDK завершена.
...
Запрос
Все запросы отправляются с помощью HTTP GET запросов к REST-сервису.
Пример путизапроса
Code Block |
---|
http://[host]:[port]/rest/chat/client/id/{token} |
...
Параметр | Обязательность | Описание |
token | да | Токен клиента |
...
Ответ
В случае успешного ответа сервер возвращает статус 200 с ответом в формате application/json:.
Response
Поле | Тип |
---|
Обязательное |
---|
Комментарий |
---|
client |
Client | нет | Информация о клиенте | |
errorCode | String | нет | Код ошибки |
errorText | String | нет | Текст ошибки |
Client
Поле | Тип | Обязательное | Комментарий |
---|---|---|---|
id | Long | да | Идентификатор клиента в |
CRM | |||
name | String | да | ФИО клиента |
surname | String | да | Фамилия |
firstname | String | да | Имя |
patronymic | String | да | Отчество |
type | Long | да | Код типа клиента |
enabled | Boolean | да | Обслуживание клиента разрешено |
birthDate | Date | нет | Дата рождения |
extRef | String | нет | Идентификатор клиента в АБС |
cardRef | String | нет | Идентификатор клиента в |
карточный системе |
bankBranch |
id
Идентификатор подразделения банка в iSimpleBank 2.0
name
Наименование подразделения банка
Branch | нет |
Информация о подразделении клиента |
crmURL | String | нет | Полная ссылка, по которой клиента можно открыть в CRM. |
fields |
Map<String, String> | нет | Поля с любой дополнительной информацией о клиенте в виде название поле → значение. |
companyList |
Параметр
Тип
List<Company> | нет | Список организаций, к которым относится текущий клиент. |
Client
Поле | Тип | Обязательное | Комментарий |
---|---|---|---|
id | Long | нет | Идентификатор подразделения банка во внешней системе |
extRef | String | нет | Идентификатор в АБС подразделения банка |
bik | String | нет | БИК подразделения банка |
name | String | нет | Наименование подразделения банка |
Company
Поле | Тип | Обязательное | Комментарий |
---|
id | Long |
да | Идентификатор организации во внешней системе | ||
name | String | нет | Наименование организации |
type | Long | нет | Код типа организации |
enabled | Boolean |
нет | Обслуживание организации разрешено | ||
extRef | String | нет | Код |
организации в АБС | |||
inn | String | ИНН | |
kpp | String | КПП | |
resident | Boolean |
Признак "Нерезидент" | |||
phone | String | Телефоны | |
shortName | String | Сокращенное наименование | |
internationalName | String | Международное наименование | |
ogrn | String | ОГРН | |
ogrnDate | Date | Дата ОГРН | |
internationalAddress | String |
блок полей списка организаций (блок внутри основного элемента)
Примеры ответов
Успешный ответ
В случае успешного ответа В случае ошибки сервер возвращает статус не 200, а также может дополнительно возвращаеть описание ошибки 200 с ответом в формате application/json в теле ответа:
...
Параметр
...
Описание
...
errorCode
...
Код ошибки
...
errorText
...
Текст ошибки
Примеры
Запрос:
Code Block |
---|
GET http://127.0.0.1:8080/rest/chat/client/id/a57974242d0146c28056 |
...
Code Block | ||
---|---|---|
| ||
{ "client": { "id": "1064775", "name": "Давыдов Юрий Викторович", "surname": "Давыдов", "firstname": "Юрий", "patronymic": "Викторович", "birthDate": "1976-03-31", "type": "0", "enabled": "true", "extRef": "1", "bankBranch": { "id": "720987", "extRef": "1", "bik": "042809888", "name": "ЗАО КБ \"ГЛОБАЛЬНЫЙ РАСЧЕТНЫЙ ЦЕНТР\"" }, "fields": { "ИНН": "1234567890" "Город": "Москва" } } } |
Ответ с ошибкой:
Code Block | ||
---|---|---|
| ||
{"errorCode":"1001","errorText":"Client not found"} |
Успешный ответ со списком компаний
...
Code Block |
---|
{
"client": {
"id": "124625",
"name": "Царев Алексей Юрьевич",
"surname": "Царев",
"firstname": "Алексей",
"patronymic": "Юрьевич",
"birthDate": "1973-09-02",
"type": "2",
"enabled": "false"
},
"companyList": [
{
"id": "225760",
"name": "ООО УралСтройМаш",
"extRef": "561",
"inn": "7701028744",
"kpp": "770001001",
"resident": "true",
"phone": "+79093342334",
"shortName": "ОАО ЛИГА",
"internationalName": "LIGA JSC",
"ogrn": "1057703026633",
"ogrnDate": "2005-02-11"
},
{
"id": "124612",
"name": "ОАО Капитолий",
"extRef": "560",
"inn": "7701058541",
"kpp": "770001001",
"resident": "true",
"phone": "123-34-45",
"shortName": "ОАО Капитолий",
"internationalName": "CAPITOLIY JSC",
"ogrn": "2801283419468",
"internationalAddress": "",
"regAddress": ""
}
]
} |
Ответ с ошибкой
В случае ошибки сервер возвращает статус не 200, а также может дополнительно возвращать описание ошибки в формате application/json в теле ответа:
Code Block | ||
---|---|---|
| ||
{"errorCode":"1001","errorText":"Client not found"} |