Интеграция с 1С
Для начала рекомендую делать интеграцию на тестовом 1с сервере. Это важно.
Все взаимодействие с АСР MikBiLL построено на POST вызовах и json ответах
Интеграция с 1С делается в 3 этапа:
Этап 1. API Userside
1.1. Выгрузка абонентов
Документация по вызову и полное описание всех полей данных по ссылке https://wiki.userside.eu/API_-_usm_billing_-_get_user_list
краткие выдержки из документации:
'flag_corporate' => флаг – юридическое лицо 'agreement' => array( - договора с клиентом [] => array( - вложенный массив 'number' => номер 'date' => дата ) )
Учитывая объем около 100 000 учетных записей , время выгрузки примерно 15 минут.
1.1.1 Выгрузка одного абонента
Для тестирования обработки или других нужд будет удобно получить данные только одного абонента, для этого есть подвызов
Запрос:
GET /api/index/api?key=12345&request=get_user_list&customer_id=7
Параметры GET: customer_id=7 - id абонента
Ответ:
{ "7": { "id": 7, "customer_id": 7, "state_id": 1, "login": "router", "password": "12345", "full_name": "Тестовый Роутер Павлович", "flag_corporate": 0, "tariff": { "current": [ { "id": 18 } ] }, "agreement": [ { "number": "1121050", "date": "2012-08-12" } ], "comment": "10:1F:74:F8:DE:DD\nмаленький бук: \n00:22:15:AE:57:74", "balance": "12678.700000", "credit": "4059.23", "date_create": "2012-08-12", "date_connect": "2012-08-12", "traffic": { "month": { "up": 0, "down": 0 } }, "discount": 0, "address": [ { "type": "connect", "house_id": 4, "apartment": { "full_name": "1", "number": "1" }, "entrance": 0, "floor": 0 } ], "phone": [ { "number": "2", "flag_main": 1 }, { "number": "+79117446255", "flag_main": 0 }, { "number": "1", "flag_main": 0 } ], "email": [ { "address": "info@mikbill.ru", "flag_main": 1 } ], "ip_mac": { "167776020": { "ip": "", "mac": "002215ae57a1", "ip_net": "255.255.255.255", "local_ip": 167776020 } }, "additional_data": { "1": { "id": 1, "value": "333" }, "2": { "id": 2, "value": "выа333" }, "4": { "id": 4, "value": "0000-00-00" } }, "service": { "8": [ { "cost": "100", "date_add": "2016-05-28", "comment": "Устройство id: 88" }, { "cost": "30", "date_add": "2016-08-17", "comment": "Устройство id: 90" } ], "9": [ { "cost": "5.000000", "date_add": "", "comment": "Реальный IP" } ] } } }
Этап 2 Справочники и информация
Все взаимодействие с АСР MikBiLL построено на POST вызовах и json ответах. Необходимо хранить куки и использовать в дальнейших запросах
2.1 Авторизация в АСР MikBiLL
Запрос:
POST /json/index/auth
Данные POST:
login - логин
password - пароль в md5
Ответ:
{ "success": true, "jwt": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxM..........", "data": { "enable": true, "ue": "руб", "result": 1, .......... } }
Описание:
Необходимо хранить cookie и использовать в дальнейших запросах.
"data": { "enable": true, - означает что вас авторизовало
"success": true
означает что запрос выполнен успешно
"success": false
это критическая ошибка продолжать дальше бессмысленно
2.2. Справочник финансовых категорий
2.2.1 Типы начислений ( снятия абонплат с абонента)
Разбивка по группам:
Название группы | Список bughtypeid |
---|---|
все | 1,2,7,9,20,21,22,23,25,26,27,28,29,30,32,33,34,35,36,42,46,48,51,64,65,72,74,79,99,104,105,120 |
только интернет | 1,2,7,20,21,22,42 |
ТВ и другие доп услуги | 79 |
Оборудование абонента | 64,65, |
Подключение | 27,30,46 |
Другие сервисы | 9,26,29,32,33,34,35,48,48,120 |
Описание справочника bughtypeid:
bughtypeid | Описание |
---|---|
1 | Абонентская плата за текущий месяц |
2 | Абонентская плата за текущий день |
7 | Снятие со счета |
9 | Оплата аренды внешнего IP адреса |
20 | Блокировка интернета в связи с окончанием средств |
21 | Остаточная абонплата за месяц |
22 | Остаточная Абонентская плата за текущий месяц |
23 | Изменение пакета с нового месяца |
25 | Ремонт |
26 | Изменение тарифного пакета |
27 | Подключение |
29 | % за пользование кредитом |
30 | Создание второй учетной записи |
32 | Услуга Real IP |
33 | Активация Акционного тарифа |
34 | Услуга "Турбо" |
35 | Активация услуги Кредит |
36 | Активация услуги Кредит с % |
42 | Отключение по задолженности |
46 | Активация учетки абонента |
48 | Оплата Разморозки |
51 | Абонентская плата заморозки |
64 | Плата за покупку устройства |
65 | Плата за аренду устройства |
72 | Перевод средств абоненту |
74 | Комиссия за перевод средств абоненту |
79 | Дополнительные услуги - списание с абонента |
99 | Корректировка |
104 | Пеня |
105 | Отмена Безналичного платежа |
120 | Подписка Rentsoft |
2.3 Справочника субпровайдеров
Запрос:
POST json/options/usersgroupslist
Ответ:
{ "success": true, "totalCount": 1, "data": [ { "usersgroupid": "1", "usersgroupname": "Иванов", "description": "", "archived": "0", "share": "10.00", "ext_do_liqpay_terminal": "1", "ext_easysoft_purpose_vat": "0", "ext_liqpay_v3": "1", "ext_merchant_id": "12345", "ext_merc_sign": "123", "ext_merc_sign_other": "123", "ext_payberry_legal_code": "1", "ext_payberry_login": "1", "ext_payberry_numdogovor": "1", "ext_payberry_on": "1", "ext_payberry_uid": "1", "ext_phone_pay": "123", "ext_show_company_name": "1", "ext_show_company_name_text": "Моя компания" } ] }
Описание:
"usersgroupid": "1" - Идентификатор субпровайдера, этапе 3.1
"usersgroupname": "Иванов" - Название субпровайдера внутри системы
Этап 3 - регулярная выгрузка информации
Запрос:
POST /json/bugh/paymentsreport
Данные POST:
reportname: paymentsbycategoriesreport
from_date: 2014-08-01 - дата начала год-месяц-день
to_date: 2014-08-31 - дата окончания год-месяц-день
settlementid: -1 - все населенные пункты
sectorid: -1 - все сегменты
usersgroupid: 0 - все субпровайдеры
categories_list:
1,2,5,6,7,9,10,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,142
тут из пп 2.2 данного документа указываются категории, в примере указаны практически все категории , хотя вы можете выбирать какие вам нужно выгружать.
например: categories_list: 79 - выдаст список всех списаний Абонплаты за доп услуги
Ответ:
{ "success": true, "data": [ { "date": "2020-02-17 20:19:55", "before_billing": "12728.7", "summa": "50", "comment": "HD Кино", "typename": "Дополнительные услуги - списание с абонента", "stuffid": "", "bughtypeid": "79", "plategid": "406328", "user": "router", "fio": "Тестовый Роутер Павлович", "phone": "+79117446255", "speed_rate": "5000", "speed_burst": "5000", "mob_tel": "2", "sms_tel": "1", "gid": "18", "sectorid": "37", "login": "System", "useruid": "7", "address": "Переяславка, Октябрьская 92/1" }, { "date": "2020-02-18 18:59:55", "before_billing": "-758.62", "summa": "0", "comment": "test22", "typename": "Дополнительные услуги - списание с абонента", "stuffid": "", "bughtypeid": "79", "plategid": "406330", "user": "0000018134", "fio": "", "phone": "", "speed_rate": "0", "speed_burst": "0", "mob_tel": "", "sms_tel": "", "gid": "3", "sectorid": "28", "login": "System", "useruid": "18134", "address": "Переяславка, пер. Ульянова 60" }, { "date": "2020-02-18 19:07:51", "before_billing": "-758.62", "summa": "0", "comment": "test22", "typename": "Дополнительные услуги - списание с абонента", "stuffid": "", "bughtypeid": "79", "plategid": "406332", "user": "0000018135", "fio": "", "phone": "", "speed_rate": "0", "speed_burst": "0", "mob_tel": "", "sms_tel": "", "gid": "3", "sectorid": "32", "login": "System", "useruid": "18135", "address": "Переяславка, пер. Ульянова 60" }, { "date": "2020-02-18 19:10:30", "before_billing": "-758.62", "summa": "0", "comment": "test22", "typename": "Дополнительные услуги - списание с абонента", "stuffid": "", "bughtypeid": "79", "plategid": "406334", "user": "0000018136", "fio": "", "phone": "", "speed_rate": "0", "speed_burst": "0", "mob_tel": "", "sms_tel": "", "gid": "3", "sectorid": "28", "login": "System", "useruid": "18136", "address": "Могилевка, Тестовая улица 3 55" }, { "date": "2020-02-18 19:37:43", "before_billing": "-758.62", "summa": "0", "comment": "test22", "typename": "Дополнительные услуги - списание с абонента", "stuffid": "", "bughtypeid": "79", "plategid": "406336", "user": "0000018137", "fio": "", "phone": "", "speed_rate": "0", "speed_burst": "0", "mob_tel": "", "sms_tel": "", "gid": "3", "sectorid": "28", "login": "System", "useruid": "18137", "address": "Могилевка, тестовая улица 4 555" } ], "error": 0 }
3.1 Получение финансовых операции за период времени
Запрос:
POST /json/bugh/paymentsreport
Данные POST:
reportname: paymentsbycategoriesreport from_date: 2014-08-01 - дата начала год-месяц-день to_date: 2014-08-31 - дата окончания год-месяц-день settlementid: -1 - все населенные пункты sectorid: -1 - все сегменты usersgroupid: 0 - все субпровайдеры
categories_list:
1,2,5,6,7,9,10,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,142
тут из пп 2.2 данного документа указываются категории, в примере указаны практически все категории , хотя вы можете выбирать какие вам нужно выгружать. например categories_list: 79 - выдаст список всех списаний Абонплаты за доп услуги
Ответ:
{ "success": true, "data": [ { "date": "2020-02-17 20:19:55", "before_billing": "12728.7", "summa": "50", "comment": "HD Кино", "typename": "Дополнительные услуги - списание с абонента", "stuffid": "", "bughtypeid": "79", "plategid": "406328", "user": "router", "fio": "Тестовый Роутер Павлович", "phone": "+79117446255", "speed_rate": "5000", "speed_burst": "5000", "mob_tel": "2", "sms_tel": "1", "gid": "18", "sectorid": "37", "login": "System", "useruid": "7", "address": "Переяславка, Октябрьская 92/1" }, { "date": "2020-02-18 18:59:55", "before_billing": "-758.62", "summa": "0", "comment": "test22", "typename": "Дополнительные услуги - списание с абонента", "stuffid": "", "bughtypeid": "79", "plategid": "406330", "user": "0000018134", "fio": "", "phone": "", "speed_rate": "0", "speed_burst": "0", "mob_tel": "", "sms_tel": "", "gid": "3", "sectorid": "28", "login": "System", "useruid": "18134", "address": "Переяславка, пер. Ульянова 60" }, { "date": "2020-02-18 19:07:51", "before_billing": "-758.62", "summa": "0", "comment": "test22", "typename": "Дополнительные услуги - списание с абонента", "stuffid": "", "bughtypeid": "79", "plategid": "406332", "user": "0000018135", "fio": "", "phone": "", "speed_rate": "0", "speed_burst": "0", "mob_tel": "", "sms_tel": "", "gid": "3", "sectorid": "32", "login": "System", "useruid": "18135", "address": "Переяславка, пер. Ульянова 60" }, { "date": "2020-02-18 19:10:30", "before_billing": "-758.62", "summa": "0", "comment": "test22", "typename": "Дополнительные услуги - списание с абонента", "stuffid": "", "bughtypeid": "79", "plategid": "406334", "user": "0000018136", "fio": "", "phone": "", "speed_rate": "0", "speed_burst": "0", "mob_tel": "", "sms_tel": "", "gid": "3", "sectorid": "28", "login": "System", "useruid": "18136", "address": "Могилевка, Тестовая улица 3 55" }, { "date": "2020-02-18 19:37:43", "before_billing": "-758.62", "summa": "0", "comment": "test22", "typename": "Дополнительные услуги - списание с абонента", "stuffid": "", "bughtypeid": "79", "plategid": "406336", "user": "0000018137", "fio": "", "phone": "", "speed_rate": "0", "speed_burst": "0", "mob_tel": "", "sms_tel": "", "gid": "3", "sectorid": "28", "login": "System", "useruid": "18137", "address": "Могилевка, тестовая улица 4 555" } ], "error": 0 }
3.2. Получение истории платежей по абоненту
Запрос:
POST json/users/statpaymfl
Данные POST:
from_date: 2014-08-01 - дата начала год-месяц-день
to_date: 2014-08-31 - дата окончания год-месяц-день
uid: 7 - UID идентификатор абонента
Ответ:
{ "success": true, "totalCount": 4, "data": [ { "IdRowPayView": "4", "date": "2020-01-10 23:58:04", "bughtypeid": "Абонентская плата за текущий день", "who": "System", "before_billing": "-459.17", "summa": "8.06", "comment": "" }, { "IdRowPayView": "3", "date": "2020-01-10 23:58:05", "bughtypeid": "Дополнительные услуги - списание с абонента", "who": "System", "before_billing": "-467.24", "summa": "3.84", "comment": "VIP HD" }, { "IdRowPayView": "2", "date": "2020-01-11 23:58:03", "bughtypeid": "Абонентская плата за текущий день", "who": "System", "before_billing": "-471.08", "summa": "8.06", "comment": "" }, { "IdRowPayView": "1", "date": "2020-01-11 23:58:04", "bughtypeid": "Дополнительные услуги - списание с абонента", "who": "System", "before_billing": "-479.14", "summa": "3.84", "comment": "VIP HD" } ] }
bughtypeid - справочник описан в этапе 2.2