Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Auth API — это протокол авторизации клиента, который использует сервер чата для авторизации клиента во внешней системе (CRM/ДБО).

...


Протокол авторизации

  1. Получение токена. Браузер или мобильное приложение получают или генерируют токен клиента для авторизации в чате. Токен — это любая строка. Например, это может быть токен текущей сессии.
  2. Передача токена в SDK. При инициализации SDK чата (виджета, мобильных SDK) браузер или мобильное приложение передает в него токен клиента.
  3. Запрос авторизации по токену. SDK чата отправляет запрос на авторизацию клиента на сервер чата.
  4. Запрос карточки клиента. Сервер чата получает токен и отправляет этот токен в сервис авторизации для авторизации клиента и получение его карточки. Сервисом авторизации может выступать CRM, ДБО и т.д.
  5. Возврат карточки клиента. Сервис авторизации проверяет токен клиента и возвращает карточку клиента или ошибку.
  6. Сохранение информации о клиенте. Сервер чата сохраняет карточку клиента локально.
  7. Возврат сессии авторизации в чате. Сервер чата создает сессию авторизации клиента в чате и возвращает ее в SDK.
  8. Авторизация клиента в SDK завершена.

...

Запрос

Все запросы отправляются с помощью HTTP GET запросов к REST-сервису.

Пример путизапроса

Code Block
http://[host]:[port]/rest/chat/client/id/{token}

...

Параметр

Обязательность

Описание

token

да

Токен клиента

...

Ответ

В случае успешного ответа сервер возвращает статус 200 с ответом в формате application/json:.

Response

Поле

Тип

Обязательность

Обязательное

Описание

Комментарий

client
Блок полейдаблок полей клиента физического лица (блок внутри основного элемента)
ClientнетИнформация о клиенте
errorCodeStringнетКод ошибки
errorTextStringнетТекст ошибки

Client

Поле

Тип

Обязательное

Комментарий

idLongдаИдентификатор клиента в
iSimpleBank 2.0
CRM
nameStringда

ФИО клиента

surnameStringдаФамилия
firstnameStringдаИмя
patronymicStringдаОтчество
typeLongдаКод типа клиента
enabledBooleanдаОбслуживание клиента разрешено
birthDateDateнетДата рождения
extRefStringнетИдентификатор клиента в АБС
cardRefStringнетИдентификатор клиента в
карточном бэк
карточный системе
bankBranch
Блок полей

id

Longнет

Идентификатор подразделения банка в iSimpleBank 2.0

extRefStringнетИдентификатор в АБС подразделения банкаbikStringнетБИК подразделения банка

name

Stringнет

Наименование подразделения банка

Branchнет
блок полей подразделения банка клиента (блок внутри блока client)
Информация о подразделении клиента
crmURLStringнетПолная ссылка, по которой клиента можно открыть в CRM.
fields
map<String
Map<String, String>нетПоля с любой дополнительной информацией о клиенте в виде название поле → значение.
companyList

Параметр

Тип

List<Company>нетСписок организаций, к которым относится текущий клиент.

Client

Поле

Тип

Обязательное

Комментарий

idLongнетИдентификатор подразделения банка во внешней системе
extRefStringнетИдентификатор в АБС подразделения банка
bikStringнетБИК подразделения банка
nameStringнетНаименование подразделения банка

Company

Поле

Тип

Обязательное

Комментарий

Описание

idLong
Идентификатор организации в iSimpleBank 2.0
даИдентификатор организации во внешней системе
nameStringнетНаименование организации
typeLongнетКод типа организации
enabledBoolean
Обслуживание организацииразрешено
нетОбслуживание организации разрешено
extRefStringнетКод
клиента
организации в АБС
innString
ИНН
kppString
КПП
residentBoolean
признак

Признак "Нерезидент"
phoneString
Телефоны
shortNameString
Сокращенное наименование
internationalNameString
Международное наименование
ogrnString
ОГРН
ogrnDateDate
Дата ОГРН
internationalAddressString
Массив объектовнет

блок полей списка организаций (блок внутри основного элемента)



Примеры ответов

Успешный ответ

В случае успешного ответа В случае ошибки сервер возвращает статус не 200, а также может дополнительно возвращаеть описание ошибки 200 с ответом в формате application/json в теле ответа:

...

Параметр

...

Описание

...

errorCode

...

Код ошибки

...

errorText

...

Текст ошибки

Примеры

Запрос:

Code Block
GET http://127.0.0.1:8080/rest/chat/client/id/a57974242d0146c28056

...

Code Block
languagejs
{
  "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
languagejs
{"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
languagejs
{"errorCode":"1001","errorText":"Client not found"}