Користувальницькькі налаштування

Налаштування сайту


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації щодо оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

reminder

Автоматична розсилка користувацьких нагадувань

Для автоматичної розсилки нагадувань користувачам в Ubilling передбачена підсистема Reminder. Працює вона максимально просто і прямолінійно і складається з двох окремо конфігурованих частин. Власне самої підсистеми розсилки, що викликається за допомогою RemoteAPI і модуля кабінету користувача, призначеного для ввімкнення/вимкнення послуги, а також опціонального управління мобільним номером абонента.

Починаючи з релізу 1.1.6:

Дещо змінилася логіка роботи опції увімкнення модуля REMINDER_ENABLED, а саме:

  • 0 - нагадування вимкнено
  • 1 - усі нагадування увімкнено
  • 2 - нагадування за основною послугою вимкнено, всі інші нагадування - увімкнено

Так само цей модуль отримав можливість повідомляти користувачів про декілька нових видів прийдешніх подій:

  • - закінчення терміну дії кредиту. Варто зазначити, що враховується тільки встановлена дата закінчення кредиту, сума кредиту ніяк не враховується.
  • - настання відповідальності за тривалу неактивність, aka Достоєвський.
  • - закінчення кількості днів призупинення. Варто зазначити, що alter.ini опція FREEZE_DAYS_CHARGE_ENABLED має бути ввімкнена.

Налаштування alter.ini

REMINDER_ENABLED=1
REMINDER_TAGID=36
REMINDER_DAYS_THRESHOLD=2
REMINDER_PREFIX="+38"
REMINDER_TEMPLATE="Shanovnij abonent {REALNAME} stan vashogo rahunku {CASH} hrn {CURDATE}"
REMINDER_FORCE_TRANSLIT=1

Необов'язкові опції alter.ini

;REMINDER_USE_EXTMOBILES=0
;REMINDER_CONSIDER_CREDIT=0
;REMINDER_DAYS_THRESHOLD_CREDIT=2
;REMINDER_TEMPLATE_CREDIT="Shanovnij abonent {REALNAME} vash credyt {CREDIT} mayge vycherpano"
;REMINDER_CONSIDER_CAP=0
;REMINDER_DAYS_THRESHOLD_CAP=5
;REMINDER_TEMPLATE_CAP="Shanovnij abonent {REALNAME} popovnit rahunok dlya zapobigannya shtrafu za neaktyvnist"
;REMINDER_CONSIDER_FROZEN=0
;REMINDER_DAYS_THRESHOLD_FROZEN=15
;REMINDER_TEMPLATE_FROZEN="Shanovnij abonent {REALNAME}, zvernit uvagu, scho vashi dni zamorozky mayge vycherpano"
;REMINDER_DEBUG_ENABLED=0  

Власне, це означає, що для всіх користувачів зі встановленим і заздалегідь створеним тегом з ID 36, буде здійснюватися надсилання SMS, у разі якщо до терміну закінчення їхньої оплаченої послуги залишилося 2 або менше днів. Опція REMINDER_TEMPLATE, приймає для шаблонізації стандартні макроси загальних шаблонів.

Надсилання не здійснюватиметься таким категоріям користувачів:

  • До закінчення оплаченого періоду залишилося більше ніж REMINDER_DAYS_THRESHOLD днів (у них все добре).
  • Боржникам (вони вже знають, що у них інтернет скінчився)
  • Замороженим (вони у відпустку поїхали, нічого їм спамити)

SMS для відсилання складаються в загальну чергу, і власне вимагають увімкненої та налаштованої собаки-посилаки. Для виконання цієї механіки потрібен відповідний виклик у crontab:

30 9 * * *      /bin/ubapi  "reminder"

У разі, якщо потрібне примусове надсилання якоїсь кількості повідомлень, незалежно від терміну дії послуги, що залишився, можна зробити це за допомогою опціонального параметру force. Реалізується це таким чином:

30 9 25 * *      /bin/ubapi  "reminder&param=force"

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

Тарифікація послуги здійснюється за допомогою штатної механіки віртуальних сервісів, навішаних на потрібний тег.

Налаштування userstats.ini

REMINDER_ENABLED=1
REMINDER_PRICE=1
REMINDER_TAGID=36
REMINDER_NUMBER_LENGTH=10
REMINDER_DAYS_THRESHOLD=2
REMINDER_PREFIX="+38"
REMINDER_CHANGE_NUMBER=0
REMINDER_FEE=1
REMINDER_CASHTYPEID=1
REMINDER_TURNOFF=1

Необов'язкові опції, які, тим не менш, повинні бути включені в userstats.ini, якщо такі ж опції включені в alter.ini

;REMINDER_CONSIDER_CREDIT=0
;REMINDER_DAYS_THRESHOLD_CREDIT=2
;REMINDER_CONSIDER_CAP=0
;REMINDER_DAYS_THRESHOLD_CAP=5
;REMINDER_CONSIDER_FROZEN=0
;REMINDER_DAYS_THRESHOLD_FROZEN=15

Тут усе теж доволі прозоро - користувачеві можна дозволити самостійно вмикати або вимикати послугу (так, просто вішається тег), примусово знімати під час її активації певну суму грошей з рахунку, а також давати змогу самостійно міняти номер мобільного телефону (експериментальна фіча - використовуйте тільки на свій страх і ризик).

PrivatBank Invoices

Починаючи з релізу 1.4.4 в Ubilling доступна інтеграція з сервісом “PrivatBank Invoices”(PBI) від ПриватБанку, яка дозволяє відправляти інвойси нашим користувачам і клієнтам ПриватБанку за сумісництвом. Цей сервіс вигідно відрізняється від СМС своєю безкоштовністю(принаймі, станом на 1й квартал 2024го). Варто зазначити, що відтепер Ubilling надає як мінімум 3 опції щодо відправлення нагадувань користувачам стосовно низького балансу(тобто - за основною послугою):

  • тільки СМС
  • тільки інвойс
  • СМС + інвойс

Останні два варіанти реалізовуються за допомогою відповідних, дуже self-explanatory, опцій alter.ini REMINDER_PBI_ONLY_TAG_ID та REMINDER_PBI_AND_SMS_TAG_ID.
І тут все доволі просто:

  • якщо користувачу не присвоєний жодний з двох тегів, регламентованих опціями REMINDER_PBI_ONLY_TAG_ID та REMINDER_PBI_AND_SMS_TAG_ID - йому буде відправлятися звичайне СМС
  • якщо користувачу присвоєний тег REMINDER_PBI_ONLY_TAG_ID - йому буде відправлятися лише інвойс
  • якщо користувачу присвоєний тег REMINDER_PBI_AND_SMS_TAG_ID - йому буде відправлятися як інвойс, так і СМС

alter.ini опції, що регулюють роботу PBI-інтеграції

; всі опції - НЕОБОВ'ЯЗКОВІ - тому не забуваємо їх розкоментувати
REMINDER_PRIVATBANK_INVOICE_PUSH=1
REMINDER_PBI_AUTH_LOGIN="your_auth_login_from_PB"
REMINDER_PBI_URL="https://irc.privatbank.ua/paygatews/invoice/process.ws"
REMINDER_PBI_DAY_TARIFF_MULTIPLIER=30
REMINDER_PBI_ONLY_TAG_ID=101
REMINDER_PBI_AND_SMS_TAG_ID=111
REMINDER_PBI_USER_FILTER_PAYSYS_LIST=""

Оскільки майже всі опції вище доволі self-explanatory - детально варто зупинитись, мабуть шо, тільки на останній з них.
Отож, опція REMINDER_PBI_USER_FILTER_PAYSYS_LIST задумувалась як така собі відповідь на питання: “А як зрозуміти, хто з наших користувачів є клієнтом ПриватБанку, а хто ні?”, і якось нічого кращого не придумалось, як дивитись чи не приходили від конкретно взятого користувача оплати з певних платіжних систем. І, якщо приходили - вважати такого користувача “умовно підходящим” кандидатом на клієнти ПриватБанку. Чому умовно? - ну, тому що не обов'язково бути клієнтом ПриватБанку, або оплатити послугу через термінал ПриватБанку. Отака механіка. Користуватись нею чи ні - кожний вирішить для себе сам.
Єдине, що ще варто зазначити: ця опція має містити список платіжних фронтендів, які на зараз є активними у вашому біллінгу. Назви платіжних систем мають бути точно такі ж, як і в модулі “OpenPayz”(ага, як правило ще й КАПСОМ), мають розділятися комами і НЕ містити пробілів.
Якщо ж лишаємо цю опцію пустою - ніяких фільтрацій користувачів по платіжним системам відбуватись не буде.

ОБОВ'ЯЗКОВІ додаткові налаштування

Ще раз робимо акцент на тому, що PBI-інтеграція таки працює на базі модулю “Reminder” - тобто у вас, як мінімум має бути включеним і налаштованим функціонал нагадувань(просто читаємо цю статтю від початку до кінця). Так, як мінімум має буть REMINDER_ENABLED=1, а також вказаний REMINDER_TAGID та REMINDER_DAYS_THRESHOLD.
Далі слід зазначити, що сервіс PBI це така штука дуже схожа на платіжні системи і, відповідно, вона прив'язується до конкретного контрагента, а це значить - що? - правильно, те, що конкретно взятий користувач має належати до конкретно взятого контрагента, щоб мати змогу від лиця цього контрагента відправити йому інвойс. А ще це значить, що для додаткових налаштувань сервісу PBI ми використаємо модуль "Додаткова інформація про контрагента". Отож, після ввімкнення опції REMINDER_PRIVATBANK_INVOICE_PUSH=1 при спробі додати новий запис в модулі “Додаткова інфо про контрагента” у випадаючому списку “Ім`я платіжної системи” ми побачимо нову опцію PRIVAT_INVOICE_PUSH:

Далі вказуємо дані для статичних полів JSON:

JSON же в нас має отаку структуру і саме на такій структурі JSON-документу ви маєте погодити власну інтеграцію, коли будете узгоджувати все це з ПриватБанком:

Invoice JSON

Hide

{
    "invoicetype": "S",
    "comctype": "8",
    "company": "СуперМегаТелеком",
    "companyid": "4410221",
    "servicecod": "202",
    "serviceid": "4410222",
    "invname": "СуперМегаТелеком",
    "destname": "Призначення платежу",
    "mfod": "87412",
    "okpod": "369874155",
    "amount": 150,
    "clphone": "+380551234567",
    "invclosingdate": "2024-02-28",
    "extparams": {
        "param": [
            {
                "name": "bill_identifier",
                "value": "11223344"
            }
        ]
    }
}


Зняття оплати за сервіс нагадувань при ввімкненому сервісі PBI

Якщо ми хочемо бути чесними зі своїми користувачами, то, оскільки PBI сервіс в нас на разі “free of charge” - ми не мали би знімати оплату з користувачів, яким шлемо тільки інвойси, тобто яким присвоєний тег REMINDER_PBI_ONLY_TAG_ID. Що, як би - логічно. Отож, якщо ми хочемо виключити таких користувачів з процесу обробки віртуальним сервісом, який у нас знімає оплату за нагадування - робимо наступне:

1. Йдемо у редагування віртуального сервісу, що відповідає за зняття оплати за нагадування
2. В поле "Користувачі зі вказаними тегами будуть виключені з обробки даним сервісом. ID тегів мають відокремлюватись комами." вписуємо ID нашого REMINDER_PBI_ONLY_TAG_ID
3. Зберігаємо зміни
4. PROFIT!1!!!11

Виглядає це якось так:

reminder.txt · Востаннє змінено: 2024/02/27 00:31 повз bobr