Перейти к основному контенту

Требования к интеграции

Описание функционала

В функционал личного кабинета входит: 

Авторизация:

    Авторизация по номеру телефона. С помощью авторизации по номеру телефона можно предоставить доступ к функционалу приложения пользователям, которые не знают свой логин или не являются абонентами. Авторизоваться по номеру телефона могут и абоненты, если к их карточке привязан номер телефона.

    Мобильное приложение:

      Мобильное приложение с отдельным экраном для Абонентов и Не абонентов. В личном кабинете абонента отображается информация по Договорам, Тарифам, Балансу и общие данные абонента (ФИО, номер телефона и т.д.). В неабонентской версии личного кабинета отображается информация по доступным Тарифам.
        Макет личного кабинета Абонента и Не абонента.

        Карточка пользователя на core-web:

          Карточка пользователя на core-web. Для удобного администрирования информации в личном кабинете мобильного приложения создан интерфейс управления информацией о пользователе.
            Карточка пользователя. Информация о пользователе: логин, абонент, телефоны, договоры, тарифы, начисления. Тарифы и Договоры. Создание и редактирование информации.

            Для корректной работы личного кабинета потребуется интеграция с основным билингом. Необходимо настроить обмен данными между системами для отображения актуальной информацией.

            Требования к интеграцииинтеграции. Методы для реализации обмена данными

            На данный момент реализован обменОбмен данными возможен только при авторизации пользователя. После того как пользователь ввел логин/пароль или номер телефона, наша система запрашивает данные по пользователю и сохраняет их у себя. При этом пароль хешируется.

            ВСЕВсе СТОИМОСТИстоимости УКАЗЫВАЮТСЯуказываются Вв МИНИМАЛЬНЫХминимальных ЕДИНИЦАХединицах ВАЛЮТЫвалюты (копейки)

            Для реализации данного способа обмена данными нам требуются следующие методы: 

             1. Авторизация / проверка логина-пароля пользователя

            POST http://127.0.0.1/api/auth

            Body:

            {
            
            “login”:”1595”, 
            
            “pswd”:”58208891”
            
            }

            Ответ:

            Успех:  http code 200

            {
            
            “ext_user_id”: "58208891",
            
            }

            Ошибка:  http code 401

            2. Получение информации о пользователе

            GET http://127.0.0.1/api/users?user_id=58208891

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

            [{
            
            "ext_user_id":"58208891",
            
            "login":"1595",
            
            "password":"58208891", 
            
            "is_blocked" ; true,  // bool
            
            "full_name":”Жанна Владимировна",
            
            "phones": [
            
            {
            
            “number”:"79090833414",
            
            “confirmed”:false,
            
            }
            
            ] 
            
            }] 

            Пользователь не найден: http code 404

            Пароль необходимо передавать в открытом виде, у себя мы храним его в хэшированном виде 

            3. Получение контрактов-лицевых счетов пользователей

            GET http://127.0.0.1/api/contracts?user_id=58208891

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

            [{
            
            "ext_id":"12331231",
            
            "account":"1595-И",
            
            "contract":"1595-И",
            
            "balance":36900,
            
            "required_payment": 1000,  // Сумма, к оплате, которая ожидается на данный момент по данному договору
            
            "address":"г. Челябинск, ул Ленина 1",
            
            "building_code":"08213690-eb4c-47a1-a509-bd9c3d5d65d8",
            
            "region":74,
            
            "building_num":”1",
            
            "flat":"92",
            
            "tariffs": [
            
            {
            
            “id” : "52082301",
            
              "options" : [
            
             {
            
              "category_name" : "Скидка",
            
              "name" : "Скидка за регулярную оплату",
            
              "hidden" : false,
            
              "value" : -1000
            
                 },
            
            ],
            
            }
            
            ],
            
                             "options" : [
            
                         {
            
               "category_name" : "Доплата",
            
               "hidden": true,
            
              "name" : "Доплата за труднодоступный/удалённый регион",
            
              "value" : 2000
            
                 }
            
                 ],
            
            "state":2 // 1 - новый, 2 - подключено
            
            } ] 

            Контракты не найдены: http code 404

            4. Получение определенного контракта

            GET http://127.0.0.1/api/contracts?id=12331231

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

            {
            
            "ext_id":"12331231",
            
            "account":"1595-И",
            
            "contract":"1595-И",
            
            "balance":36900,
            
                               "required_payment": 1000,  // Сумма, к оплате, которая ожидается на данный момент по данному договору
            
            "address":"г. Челябинск, ул Ленина 1",
            
            "building_code":"08213690-eb4c-47a1-a509-bd9c3d5d65d8",
            
            "region":74,
            
            "building_num":"1",
            
            "flat":"92",
            
            "tariffs": [
            
              {
            
              “id” : "52082301",
            
               "options" : [
            
             {
            
              "category_name" : "Скидка",
            
              "name" : "Скидка за регулярную оплату",
            
              "hidden" : false,
            
              "value" : -1000
            
                 },
            
            ],
            
              }
            
            ],
            
                             "options" : [
            
                 {
            
              "category_name" : "Скидка",
            
              "name" : "Скидка пенсионерам",
            
              "hidden" : false, 
            
              "value" : -1000
            
                 },
            
                         {
            
               "category_name" : "Доплата",
            
               "hidden": true,  // опция не будет отображаться клиенту
            
              "name" : "Доплата за труднодоступный/удалённый регион",
            
              "value" : 2000
            
                 }
            
                 ],
            
            "state":2 // Полный список статусов ниже
            
            }

            Контракт не найден: http code 404

            Справочник статусов договора:

            • 1 - новый
            • 2 - подключено
            • 3 - приостановление
            • 4 - расторжение 

            5. Список услуг

            GET http://127.0.0.1/api/services

            [
            
            {"id":"40216201","name":"Teko"},
            
            {"id":"40216202","name":"Видеонаблюдение"},
            
            {"id":"40216203","name":"Телефония"}
            
            ]

            6. Список тарифов

            GET http://127.0.0.1/api/tariffs

            [ 
            
            {"id":"52081501",
            
            "name":"Космос",
            
            "services": [
            
            { "id" : "40216201" },
            
            { "id" : "40216203" }
            
            ]
            
            "description":"Описание тарифа",
            
            "cost": 1200
            
            “link”:”https://your-domain.ru/tariff/kosmos”},
            
            ]
            
            {"id":"1081664501",
            
            "name":"Снежный",
            
            "services": [
            
            { "id" : "40216201" }
            
            ]
            
            "description":"Описание тарифа",
            
                   "without_cost": true,
            “link”:”https://your-domain.ru/tariff/snow”},
            
            ]

            7. Начисления

            GET http://127.0.0.1/api/charges?user_id=58208891&limit=1

            Запрос для получения отсортированных начислений пользователя

            limit - количество начислений, которые хотим получить. К примеру limit=1 отдаст самое последнее начисление.

            [
            
            {
            
            "account" : "1595-И",
            
            "cost" : 20000,
            
            "period" : "02-22" // месяц
            
            "description" : "Оплата услуг связи сентябрь 2022"
            
            },
            
            ]

            CallBack 

            В core есть функционал обработки callback-уведомлений. Его можно использовать для оповещения платформы об изменениях во внутреннем билинге.

            1. Изменение данных договора (баланс, тарифы). В случае  обращения к этому хэндлеру, платформа сделает запрос а API Data Provider (по спецификации, описанной выше), и обновит данные.

            Авторизация HTTP basic, данные можно запросить отдельно

                    POST https://core.coredev.is74.ru/api/v1/mb/callback/contract

            {
            "ext_id" : "12347",
            }

            2. Изменение данных всех договоров (баланс, тарифы). В случае  обращения к этому хэндлеру, платформа сделает запрос а API Data Provider (по спецификации, описанной выше), и обновит данные.

            Авторизация HTTP basic, данные можно запросить отдельно

                    POST https://core.coredev.is74.ru/api/v1/mb/callback/contract

            {
            "user_ext_id" : "58208891",
            }

            3.  Обновление начислений пользователя 

            Авторизация HTTP basic, данные можно запросить отдельно

                    POST https://core.coredev.is74.ru/api/v1/mb/callback/charge

            {
            "user_ext_id" : "58208891",
            }