You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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

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

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

Запрос

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

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

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

Входные параметры в URL

Параметр

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

Описание

token

да

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

Ответ

Response

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

Поле

Тип

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

Комментарий

clientAuth API 1.1нетИнформация о клиенте
companyListList<Auth API 1.1>нетСписок организаций, к которым относится текущий клиент.




errorCodeStringнетКод ошибки
errorTextStringнетТекст ошибки

Client

Поле

Тип

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

Комментарий

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

ФИО клиента

surnameStringдаФамилия
firstnameStringдаИмя
patronymicStringдаОтчество
typeLongдаКод типа клиента
enabledBooleanдаОбслуживание клиента разрешено
birthDateDateнетДата рождения
extRefStringнетИдентификатор клиента в АБС
cardRefStringнетИдентификатор клиента в карточный системе
bankBranchAuth API 1.1нетИнформация о подразделении клиента
crmURLStringнетПолная ссылка, по которой клиента можно открыть в CRM.
innStringнетИНН клиента.
shortNameStringнетКраткое наименование клиента.




fieldsMap<String, String>нет

Deprecated, нужно использовать fieldList

Поля с дополнительной информацией о клиенте в виде название поле → значение.

fieldListList<Auth API 1.1>нетПоля с дополнительной информацией о клиенте, при отображении в интерфейсе оператора учитывается порядок полей.

Branch

Информация об отделении банка.

Поле

Тип

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

Комментарий

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

Company

Информация об организации.

Поле

Тип

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

Комментарий

idLongдаИдентификатор организации во внешней системе
nameStringнетНаименование организации
typeLongнетКод типа организации
enabledBooleanнетОбслуживание организации разрешено
extRefStringнетКод организации в АБС
innString
ИНН
kppString
КПП
residentBoolean
Признак "Нерезидент"
phoneString
Телефоны
shortNameString
Сокращенное наименование
internationalNameString
Международное наименование
ogrnString
ОГРН
ogrnDateDate
Дата ОГРН
internationalAddressString

Field

Поле с дополнительной информацией о клиенте.

Поле

Тип

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

Комментарий

nameStringдаНазвание поля, которое будет отображаться в интерфейсе оператора
valueStringдаЗначение поля

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

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

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

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

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

{
    "client": {
        "id": "1064775",
        "name": "Давыдов Юрий Викторович",
        "surname": "Давыдов",
        "firstname": "Юрий",
        "patronymic": "Викторович",
        "shortName": "Юрий",
        "birthDate": "1976-03-31",
        "type": "0",
        "enabled": "true",
        "extRef": "1",
        "bankBranch": {
            "id": "720987",
            "extRef": "1",
            "bik": "042809888",
            "name": "ЗАО КБ \"ГЛОБАЛЬНЫЙ РАСЧЕТНЫЙ ЦЕНТР\""
        },
        "fieldList": [
            {
                "name": "ИНН",
                "value": "1234567890"
            },
            {
                "name": "Город",
                "value": "Москва"
            }
        ]
    }
}

Успешный ответ со списком компаний

{
    "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 в теле ответа:

{
    "errorCode": "1001",
    "errorText": "Client not found"
}

Изменения в версии 1.1

  • В типе Client добавлено поле shortName.
  • В типе Client добавлено поле fieldList.
  • Добавлен тип Field.



  • No labels