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

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


Сайдбар

Розділи

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

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 · Востаннє змінено: 2024/10/24 13:16 повз bobr