powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как бы вы решили задачу с уведомлением по SMS о событиях?
9 сообщений из 9, страница 1 из 1
Как бы вы решили задачу с уведомлением по SMS о событиях?
    #37918706
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть биллинговая система (БС), в которой заведены клиенты. БС работает на Linux, есть исходные коды.
Оплата за услуги списывается с лицевого счета клиента, клиент может пополнять лицевой счет разными способами.
Можно оплатить наличными в кассу (в БС есть интерфейс кассира). Можно оплатить банковским переводом (эти платежи также вносятся кассиром вручную). Можно оплатить через платежные терминалы (оплата проводится в биллинге автоматически, через платежные шлюзы). Также есть функция "отложенный платеж", которую клиент может задействовать самостоятельно, через личный кабинет или SMS.
Необходимо сделать так, чтобы после пополнения счета клиенту отправлялось соответствующее SMS (зачислено N, баланс M, оплата через X). Рассылка SMS осуществляется через SMS-шлюз, который представляет собой отдельный сервис, никак не связанный с БС (однако SMS-шлюз имеет API).
Это можно сделать разными способами, помогите выбрать наиболее подходящий.
1. Теоретически можно было бы внести изменения в программный код БС, чтобы после проведения оплаты отправлялось SMS. Но этот вариант я бы использовал в самую последнюю очередь. Во-первых, эти изменения нужно будет делать в нескольких местах, т.к. оплата разными способами в БС реализована в разных местах. Во-вторых, БС большая и сложная и при модификации кода можно допустить ошибки, тем более что я знаю язык программирования, на котором написана БС, не очень хорошо. Ну и в-третьих, я бы вообще не хотел изменять программный код, т.к. это может привести к отказу от тех.поддержки и одного этого пункта достаточно, чтобы данным вариантом не пользоваться.
2. Можно внести изменения в код платежных шлюзов, реализующих оплату через платежные терминалы или использование отложенного платежа. Но во-первых, таких шлюзов может быть много, они могут быть написаны на разных языках и они могут не иметь исходных кодов. А во-вторых, для зачисления средств через кассу шлюзы не используются (это реализует БС), а это пока наиболее массовый способ оплаты.
3. Можно с определенным интервалом запускать скрипт, который будет получать список платежей (сделанных с предыдущего запуска скрипта) и формировать SMS-рассылку. Я склоняюсь именно к этому варианту, т.к. моментальность подтверждения платежа по SMS не обязательна (хотя и хотелось бы), достаточно чтобы SMS доставилось в течении часа.
Просьба прокомментировать эти варианты или предложить что-то более удобное.
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
Как бы вы решили задачу с уведомлением по SMS о событиях?
    #37918777
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Третий вариант мне кажется наиболее правильным. Информирование - в общем совершенно самостоятельный сервис, и "скрещивать" его с другими сервисами как минимум неразумно. Что делать, если исходный код приложения поменяется? отключать сервис до того как программисты внесут дополнения в новую версию? и трястись, что нигде не допустили ляпы? а если вдруг потребуется подключить закрытый по коду платёжный шлюз?

Делайте его вообще отделённым от биллинговой (и любой другой) системы, универсальным и независимо-конфигурируемым (периодический запуск, получение данных ихз таблиц предопределённой структуры, отправка СМС по этим данным в соответсвии с шаблоном). Для чего достаточно отвязать его от получения именно платежей за период, и заставить брать данные из специальной, отдельной, таблицы. Куда класть данные для информирования триггерами при выполнении тех типов операций, которые требуют (или могут требовать - смотря где отфильтровывать по личным настройкам клиентов) информирования.
...
Рейтинг: 0 / 0
Как бы вы решили задачу с уведомлением по SMS о событиях?
    #37919922
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас написана отдельная программка - она запускается или как служба работает и имеет com интерфейс. А эта программка уже умеет отсылать sms через модемы и письма через почтовые программы. Остальные программки комплекса, которые требуют оповещения клиентов на определенные события, просто вызывают ее через com и все. Очень удобно - вызывай откуда хочешь - хоть из любого скрипта, хоть из чего еще - лишь бы стандарт автоматизации поддерживался.
Вы можете либо сами ее написать, либо купить - соответствующие решения продаются.
...
Рейтинг: 0 / 0
Как бы вы решили задачу с уведомлением по SMS о событиях?
    #37919937
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вообще, делайте как можно проще:
вот в той функции, где проходит платеж тупо вставить функцию, которая отправляет смс через ваше api смс информирования
конечно, можно по расписанию запускать скрипт, который будет шерстить таблички в базе и отправлять все кучей
можно понаписать триггеров, которые будут все скидывать в определенную табличку и прочее
у нас в одном месте применен подобный механизм - так вот, с удивительной периодичностью приходится править там возникающие ошибки..
...
Рейтинг: 0 / 0
Как бы вы решили задачу с уведомлением по SMS о событиях?
    #37920856
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что подразумевается под функцией, в которой проходит платеж?
Вот есть код веб-страницы, выполняемой при проведении платежа.
В ней создается объект account и вызывается метод enroll.
В коде account->enroll есть много всего, в том числе создание объекта payment и вызов его метода action('do').
В коде payment->action также есть много всего, в том числе подключение к БД и вызов соответствующей хранимой процедуры.
Куда вставлять функцию отправки SMS? В код веб-страницы, в прототип объекта account, в прототип объекта payment?
Кроме того, не бывает отправки SMS одной строкой. Нужно как минимум подключить модуль, создать объект и вызвать метод объекта (ну или вызвать метод модуля). БС представляет собой довольно большую систему с кучей зависимостей, какая-нибудь случайная синтаксическая ошибка (например забыл закрыть строку точкой с запятой) может проявляться в редких случаях, когда этого не будешь ждать.

Вообщем я бы не хотел без крайней нужды трогать исходный код БС.
...
Рейтинг: 0 / 0
Как бы вы решили задачу с уведомлением по SMS о событиях?
    #37922883
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам скорее всего придется совместить п.1 и п.3 т.к. объемы данных огромные, и подход скорее всего должен быть "1 раз записал 1 раз прочитал", выборка не особо покатит (разве только если там все как-то хорошо партиционировано). При обработке платежа надо создать запись об этом платеже в отдельном реестре, потом в модуле отправки прочитать её и отправить смс. Это если речь идет о централизованной рассылке для всех. Если нужно только для сайта то естественно встроите где-то в бизнес логику сайта.
...
Рейтинг: 0 / 0
Как бы вы решили задачу с уведомлением по SMS о событиях?
    #37923032
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманвыборка не особо покатит (разве только если там все как-то хорошо партиционировано).
В таблице платежей для PK используется SEQ.
Недостаточно будет при каждой выборке использовать WHERE PAYMENT_ID > LastPaymentID, где LastPaymentID — максимальный PK с предыдущей выборки? Или я что-то не учитываю?
...
Рейтинг: 0 / 0
Как бы вы решили задачу с уведомлением по SMS о событиях?
    #37923200
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kiss
...
Рейтинг: 0 / 0
Как бы вы решили задачу с уведомлением по SMS о событиях?
    #37923475
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

Может и ок, я как-то видел платёжную бд в действии, там было несколько копий платёжной таблицы (за последний месяц, за текущий день и т.д.). Если у вас нет проблем с производительностью, то конечно лучше сделать скрипт как Вы пишете.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как бы вы решили задачу с уведомлением по SMS о событиях?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]