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

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


Сайдбар

Розділи

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

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.1664019551.txt.gz · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1