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

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

Обратите внимание, что подключение личного кабинета возможно только при использовании stand-alone платформы управления домофонией. 

Методы для реализации обмена данными

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

Все стоимости указываются в минимальных единицах валюты (копейки)

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

 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”:"9090909090",
      
      “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-И",
    
  "state":2 // 1 - новый, 2 - подключено
  
  "balance":36900,
  
  "address":"г. Челябинск, ул Ленина 1",
  
  "building_code":"08213690-eb4c-47a1-a509-bd9c3d5d65d8",
  
  "region":74,
  
  "building_num":”1",
  
  "flat":"92",
  
  
  "options" : [
  
     {"category_name" : "Доплата",
  
     "hidden": true,
  
     "name" : "Доплата за труднодоступный/удалённый регион",
    
     "value" : 2000 }
     ],

  
  "tariffs": [
     {“id” : "52082301",
    
      "options" : [
    
         {"category_name" : "Скидка",
        
          "name" : "Скидка за регулярную оплату",
        
          "hidden" : false,
        
          "value" : -1000 },
    
      ],
    }
  ],

}] 

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

Все денежные суммы необходимо передавать в минимальных единицах (например, в копейках).

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

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

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

[{
  
  "ext_id":"12331231",
  
  "account":"1595-И",
  
  "contract":"1595-И",
  
  "state":2 // Полный список статусов ниже

  "balance":36900,
  
  "required_payment": 1000,  // DEPRICATED
  
  "address":"г. Челябинск, ул Ленина 1",
  
  "building_code":"08213690-eb4c-47a1-a509-bd9c3d5d65d8",
  
  "region":74,
  
  "building_num":"1",
  
  "flat":"92",

  "options" : [
    { "category_name" : "Settings",  // Данный параметр-настройку необходимо передавать только в том случае, 
      // если необходимо активировать принудительную блокировку услуг вне зависимости от суммы баланса. 
      // В случае, если необходимости такой блокировки нет, данный параметр передавать не нужно.
  
    "name" : "services_suspended_pending_payment",
  
    "hidden" : false,
  
    "value" : 1},
    
    { "category_name" : "Скидка",
  
    "name" : "Скидка пенсионерам",
  
    "hidden" : false, 
  
    "value" : -1000},
  
    {"category_name" : "Доплата",
  
     "hidden": true,  // опция не будет отображаться клиенту
  
    "name" : "Доплата за труднодоступный/удалённый регион",
  
    "value" : 2000}
  
   ],
  
  "tariffs": [
  
    { “id” : "52082301",
  
       "options" : [
  
          {"category_name" : "Скидка",
        
          "name" : "Скидка за регулярную оплату",
        
          "hidden" : false,
        
          "value" : -1000 },
        ],
  
   }],

}]

Контракт не найден: 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",
}