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

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


Сайдбар

Розділи

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

FAQ



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

opayzsmsnotify

SMS-сповіщення OpenPayz

Починаючи з релізу 1.2.7 з'явилася можливість надсилання сповіщень про успішне поповнення рахунку абонентам, які здійснили оплату через OpenPayz (термінали, банк-клієнти, etc). Так, на манер повідомлень від мобільних операторів про успішне поповнення балансу.

Включення та супутні опції

Власне - опції alter.ini:

OP_SMS_NOTIFY_ENABLED=0
OP_SMS_NOTIFY_PAYMENTS_PULL_INTERVAL=5
OP_SMS_NOTIFY_USE_EXTMOBILES=0
OP_SMS_NOTIFY_FORCED_TRANSLIT=0
OP_SMS_NOTIFY_DEBUG_ON=0
OP_SMS_NOTIFY_TEXT="Vash rakhunok popovneno na {ROUNDPAYMENTAMOUNT} grn. Zalyshok na vashomu rahunku skladae {ROUNDBALANCE} grn. Dyakuemo za te, scho vy z namy." 
OP_SMS_NOTIFY_RESPECT_REMINDER_TAGID=0

Оскільки переважна більшість із них цілком собі self-explanatory - звернемо увагу на нюанси:\

  • Увімкнення, вже звично, здійснюється опцією OP_SMS_NOTIFY_ENABLED.
  • Текст нотифікашок задається опцією OP_SMS_NOTIFY_TEXT. Тут варто відзначити підтримувані на даний момент макроси:
    • {LOGIN} - логін абонента
    • {USERONLINELEFTDAY} - кількість днів оплаченої послуги (0 у разі, якщо послугу відключено)
    • {USERONLINETODATE} - дата, до якої оплачено послугу (поточна дата в разі, якщо послугу відключено)
    • {ROUNDBALANCE} - округлений до копійок баланс абонента ПІСЛЯ поповнення
    • {ROUNDPAYMENTAMOUNT} - округлена до копійок сума поповнення
  • OP_SMS_NOTIFY_PAYMENTS_PULL_INTERVAL - мабуть єдина опція, на якій варто зробити акцент:
    • по-перше - вона задає інтервал у ХВИЛИНАХ. не в секундах, не в мілісекундах, не в годинах, не в будь-чому ще. В__ Х В И Л И Н А Х.
    • по-друге - цей інтервал (кількість цих самих хвилин) має бути більшим, ніж частота запуску виклику opayzsmsnotify з RemoteAPI. Так, хоча б на одиницю більше. Чому так - читаємо в секції нижче.
  • OP_SMS_NOTIFY_RESPECT_REMINDER_TAGID - контролює наявність тега REMINDER_TAGID у юзера під час надсилання СМС-повідомлення. Якщо тега немає - наприклад, юзер відключив СМС-повідомлення в ЛК - ніяких сповіщень не відбувається.

Трохи механіки

Робота цього функціоналу доволі нехитра: дивимося в таблицю платежів, забираємо з неї OpenPayz платежі за останні OP_SMS_NOTIFY_PAYMENTS_PULL_INTERVAL хвилин, складаємо їх в окрему службову табличку (перед тим перевіривши існування в ній уже “пронотифікованих” із щойно обраних та виключивши їх), відправляємо сповіщення, проставляємо статус “надіслано” в службовій табличці.
Чому важливо, щоб OP_SMS_NOTIFY_PAYMENTS_PULL_INTERVAL був хоча б на одиницю більшим, ніж частота викликів opayzsmsnotify з RemoteAPI? - щоб уникнути “проігнорованих” платежів. Під час вибірки платежів для процесингу з таблиці платежів на поточну_дату_час сервіс спирається тільки на самому початку, у момент найпершого запуску, а весь інший час він бере дату_час останнього обробленого(пронотифікованого) платежу, і вже саме з цього таймстампа віднімає ті самі OP_SMS_NOTIFY_PAYMENTS_PULL_INTERVAL хвилини, отримуючи дату_час, починаючи з якої і забиратимуться платежі з таблиці платежів. Так, незважаючи на те, що “вжито всіх можливих заходів”, існує ймовірність, що конкретно взятий OpenPayz платіж потрапить десь у “зазор” між запуском із крону та OP_SMS_NOTIFY_PAYMENTS_PULL_INTERVAL і буде просто проігнорований, тому що за своїм таймстампом не потрапить у вибірку.
Саме тому наполеглива рекомендація: якщо рядок у кронтабі у вас виглядає якось так:

*/2 * * * *    /bin/ubapi "opayzsmsnotify"

то OP_SMS_NOTIFY_PAYMENTS_PULL_INTERVAL зробіть рівною 3(а то й 4 - гірше від цього нікому особливо не стане). Ну і навпаки: встановивши OP_SMS_NOTIFY_PAYMENTS_PULL_INTERVAL у якесь значення, не забудьте дещо збільшити частоту викликів opayzsmsnotify, зменшивши інтервал викликів.

А - так - опцію OP_SMS_NOTIFY_DEBUG_ON у продакшені юзати категорично не рекомендується - вона вкрай “verbose”. Хіба що на перший час після ввімкнення цього функціоналу або для траблшутингу.

opayzsmsnotify.txt · Востаннє змінено: 2023/06/15 21:28 повз bobr