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

Личный кабинет жителя. Требования к интеграции

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

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

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

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

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

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

Карточка пользователя на 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",
}