Реализация задачи выгрузки файлов платежей

Автор: | 2016-05-13

Необходимо ежедневно выгружать файлы платежей, полученные от платежных систем и загружать их в биллинговую платформу, для последующей обработки.
Задача не сложная, но есть несколько очень важных критериев, а именно:

  • Биллинговая система поддерживается версионность файлов, поэтому если платежный документ пришел повторно (корректированный) его тоже нужно загрузить.
  • Необходимо вести полное логирование всех действий
  • Помимо автоматизированных систем с файлами платежей работает оператор, создает их копии и уже затем обрабатывает
  • Платежи поступают через ППО базирующее на ОС Windows, биллинговая система — Red Hat

Исходные данные

  1. Windows Server 2008
  2. Red Hat Linux Server

На сервере Windows делаем доступ на чтение к каталогу, куда поступают платежи, специально созданному пользователю.
Создаем сервер, Debian Linux, который будет отвечать за доставку платежей на сервер Red Hat Linux, установим на него базу данных MySQL

Подготовка к реализации задачи

  1. Монтируем удаленный каталог с платежами Windows Server на Debian Linux, например через samba. В каталог /home/pays/share
  2. Создадим необходимые каталоги /home/pays/cgi, /home/pays/cgi/cache, /home/pays/cgi/tosend
  3. Создадим рабочие скрипты cdmd5.sh, cfd.sh, ftd.sh, sfd.sh в каталоге /home/pays/cgi (скрипты должны быть исполняемыми)
  4. Добавим базу данных history в сервер MySQL и создадим в ней 2 таблицы

Таблицы в базе данных MySQL

Настройка скриптов

Создадим задачу в планировщике cron

Файлы, которые необходимо отправлять имеют вид 10ГГММДД.txt и US_10ГГММДД.txt, пример 10160513.txt
Этот скрипт запускается по будням в 00:02 и создает записи в базе данных с именами файлов, которые нужно будет найти и отправить биллинговой системе

Данный скрипт запускается по будням каждые 5 минут и ищет файлы, имена которых были созданы в таблице history предыдущим скриптом, также скрипт сверяет контрольную сумму функцией md5sum и записывает её в таблицу md5sum, чтобы избежать отправку дубликатов

Данный скрипт только отправляет данные на сервер через sFTP, при отправке используется SSH ключ, запускается по будням каждые 9 минут

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *