Зміст

Інтеграція з CRM Bitrix24

Доступна починаючи з Ubilling 1.3.8 rev 8872. Експортує всіляке різне.

Експорт стану абонбази

Вмикається та керується наступними опціями конфігу alter.ini:

; Вмикає чи вимикає інтеграцію з CRM Bitrix24
BTRX24_ENABLED=1
; Вказує, чи варто експортувати таймстемп LAT чи таки не треба?
BTRX24_EXPORT_LAT=0
; URL хук-скрипта на який будуть надсилатись оновлення стану користувачів. 
; В нормі це має бути щось вигляду https://app.integrator.com.ua/script-test/some_billing/index.php
BTRX24_EXPORT_URL="http://127.0.0.1/dev/post_debug.php"
; Ім'я POST змінної, в якій буде надіслано JSON дані про оновлення стану користувачів.
BTRX24_EXPORT_VAR="usrsupdtd"  

Дані надсилаються у вигляді JSON, що вміщує наступну структуру:

array (0 => array(
	phone => Телефон робочий (string)
	fio => ПІБ (string)
	pay_id => Платіжний ID (int/string?)
	login => Логін, (string)
	password => пароль, (string)
	tariff => Тариф,  (string)
	balance => Баланс1,  (string)
	tegs => Теги,  (string, comma delimited)
	speed_up => Швидкість віддачі, (int, kbit/s)
	speed_down => Швидкість загрузки, (int, kbit/s)
	abonplata => Абонплата, (float)
	cash_first_pay => Дата першої активності (int, unix timestamp)
	mobile2 => Телефон домашній (string)
	cash_last_pay => Дата останньої оплати (int, unix timestamp)
	full_adress => Адреса (string)
	cash_all_pays => сума внесених абонплат (float)
	deal_with_it1 => Запланована дата зміни тарифу (int, unix timestamp)
	deal_with_it2 => На який тариф змінити (string)
	owner => Господарюючий субєкт
	credit => Кредит (float)
	credit_day => Кредит ДО (int, unix timestamp)
	ip => IP (string)
	mac => MAC (string)
	onu_signal => сигнал ОНУ (float)
            ),
            
       1 => array(
               ...
);

Що повинно виглядати якось так:

Дані будуть відіслані при зміні будь-якого з даних полів в POST змінній з іменем вказаним в опції BTRX24_EXPORT_VAR на посилання скрипта-обробника, вказаному в опції BTRX24_EXPORT_URL при виконанні відповідного виклику btrxupd з RemoteAPI.

Наприклад, якось так, якщо ми очікуємо надсилання оновлень що 15 хвилин:

crontab
*/15 * * * *     /bin/ubapi "btrxupd"

Експорт опитувань

Доступний починаючи з Ubilling 1.3.9 rev 8909. Вміє окремо надсилати наявні опитування користувачів та їх результати до CRM. Керується наступними двома опціями конфігу alter.ini (також вимагає ввімкненої опції BTRX24_ENABLED):

;URL скрипта для експорту даних опитувань та їх результатів
BTRX24_POLLS_URL="http://127.0.0.1/dev/post_debug.php"
;Ім`я POST змінної, в якій буде експортовано дані про опитування
BTRX24_POLLS_VAR="pollsupdtd"  

Дані надсилаються методом POST у вигляді JSON, що вміщує наступну структуру:

Array
(
    [poll_id(int)] => Array
        (
            [id] => existing poll ID (int)
            [title] => existing poll title(string)
            [enabled] => 1/0 enabled flag(int)
            [votes] => Array
                (
                    [0] => Array
                        (
                            [login] => userlogin1(string)
                            [vote] => vote option text(string)
                            [option_id] => vote option id(int)
                            [address] => userlogin1 address(string)
                            [date] => voting time Y-m-d H:i:s(string)
                        )

                         [1] => Array
                        (
                            [login] => userlogin1(string)
                            [vote] => vote option text(string)
                            [option_id] => vote option id(int)
                            [address] => userlogin1 address(string)
                            [date] => voting time Y-m-d H:i:s(string)
                        )

                )

        )

що на практиці, виглядає якось наступним чином:

в секції votes знаходиться масив голосів користувачів в рамках конкретного опитування, за поточну добу.

надсилання даних відбувається за допомогою окремого виклику RemoteAPI - btrxpolls раз на добу

crontab
59 23 * * *     /bin/ubapi "btrxpolls"

Вищевказані дані будуть надіслані для опитувань, що відповідають наступним критеріям: