...
- В номенклатуре в подгруппе Службы уведомлений группы Системные службы создать позицию службы для службы обработки отправки уведомлений, установить у нее галку Может быть объектом.
- Создать сетевую службу на основе добавленной позиции номенклатуры, сделать необходимые настройки управления службой.
- Создать нового агента Менеджер активного оборудования для обработки событий, сделать необходимые настройки управления агентом, настроить параметры запуска задания по этому агенту.
- Для службы уведомлений создать действия, осуществляющие рассылку. Для получения адресов рассылки использовать подстановку USER_CONTACT_LIST с параметром, определяющим тип адреса (ADDR_TYPE_EMail, ADDR_TYPE_Jabber, ADDR_TYPE_Telephone).
- Создать события для сетевой службы уведомлений с нужным типом: Поступление на лицевой счет, Наличие рекомендуемого платежа и т. п. Выбрать менеджера (ранее созданный агент), добавить действия (только прямые).
- Подписать на данную службу абонентов (индивидуально на вкладке Службы или с помощью пункта Подписка на службы меню Обработки).
- Если используются события с типом Наличие рекомендуемого платежа, настроить параметры запуска задания Обработка рекомендуемых платежей.
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#!/usr/bin/env python # -*- coding: UTF-8 -*- import sys, os, re login = "mylogin" password = "mysecretpasswd" params = {} params["END_DATE"] = "" end_date = "" for i in range( 1,len(sys.argv) ): args = sys.argv[i].split("=") params[args[0]] = args[1] # Проверка корректности номера p = re.compile("^\d{11}$") phone_match = p.match(params["USER_NUM"]) if not(phone_match) or ((phone_match) and (phone_match.group() != params["USER_NUM"])): os._exit(0) if params["msgtmpl"] == "in_pay": msg = "%s платеж на л/с %s, сумма %s. Баланс %s" % (params["DOC_DATE"], params["ACCOUNT"], params["DOC_SUM"], params["BALANCE"]) if len(params["END_DATE"]) != 0: end_date = " до %s" % (params["END_DATE"]) if params["msgtmpl"] == "rec_pay": msg = "Рекомендуем оплатить услуги связи: %s руб.%s, л/с %s" % (params["REC_PAY"], end_date, params["ACCOUNT"]) if params["msgtmpl"] == "nonpay_block": msg = "Услуги по л/с %s заблокированы в связи с недостатком средств" % (params["ACCOUNT"]) cmd = "curl --silent --show-error --url \"http://smsc.ru/sys/send.php\" -d \"login=mylogin%s&psw=mysecretpasswd%s&phones=%s&mes=%s&charset=utf-8&time=09-22\"" % (login, password, params["USER_NUM"], msg) os.system(cmd) #print cmd |
...
Code Block |
---|
/usr/local/bin/sendsms.py msgtmpl=in_pay USER_NUM="$USER_CONTACT_LIST[ADDR_TYPE_Telephone]" \ DOC_SUM="$DOC_SUM" DOC_DATE="$DOC_TIME[DD.MM HH24:MI]" BANK="$PAYMENT_BANK_CODE" \ ACCOUNT="$USER_ACCOUNT" BALANCE="$ACCOUNT_BALANCE" |
Пример шаблона команды для сообщения абоненту о наличии рекомендуемого платежа:
Code Block |
---|
/usr/local/bin/sendsms.py msgtmpl=rec_pay USER_NUM="$USER_CONTACT_LIST[ADDR_TYPE_Telephone]" \
REC_PAY="$RECOMMENDED_PAY" END_DATE="$GOODS_END_DATE[DD.MM]" ACCOUNT="$USER_ACCOUNT" |
Пример шаблона команды для сообщения о подключении блокировки за неуплату:
Code Block |
---|
/usr/local/bin/sendsms.py msgtmpl=nonpay_block USER_NUM="$USER_CONTACT_LIST[ADDR_TYPE_Telephone]" ACCOUNT="$USER_ACCOUNT" |
Примечания
- Для того, чтобы SMS-уведомления работали, необходимо, чтобы у абонентов в АСР уже имелись контактные мобильные телефоны в формате E.164. Для хранения телефонов рекомендуется использовать специальный вид адреса Адрес для уведомлений.
- Уведомления работают следующим образом:
- За N дней (настраивается в параметрах задания "Обработка рекомендуемых платежей") до окончания расчетного периода по инвойсу абоненту, если у него по расчетам АСР не хватает на лицевом счете денег для будущего списания, будет каждый день приходить SMS с текстом Рекомендуем оплатить услуги связи: %s руб. до %s, л/с %s, где вместо %s будет, соответственно, сумма вычисленного АСР рекомендуемого платежа, дата окончания инвойса и номер лицевого счета абонента.
- Если абонент уплатил всю сумму рекомендуемого платежа, SMS на следующий день уже не придет.
- Если абонент уплатил ее частично, на следующий день SMS придет с рекомендуемым платежом, уменьшенным на сумму платежа.
- Если абонент не заплатил или заплатил недостаточно, то его отключит и SMS перестанут приходить.
- Если абоненту была подключена блокировка за неуплату (отдельное задание), то получит соответствующее уведомление.
- Также абоненту будет приходить SMS при каждом зачислении реального платежа на его лицевой счет.
- Если по какой-то причине SMS-рассылка не сработала в заданное время, то удалить ставшие уже ненужными готовые к отправке сообщения можно либо через техподдержку, либо заставив скрипт рассылки работать вхолостую.
- Новые абоненты будут получать уведомления только, если при создании будут подписаны на службу уведомлений.
- При подключении к сервису SMS-рассылок рекомендуется отдельно обговорить, чтобы получатель вместо непонятного номера отправителя видел название вашей компании. К таким сообщениям гораздо больше доверия.