#7346: Метод прерванного транзакционного акта

13:00 25.09.2011, IT happens


Торговая сеть, принимая кредитки через Сбербанк, решила принимать ещё и локальные карты банка «X». Конфигурация: кассовое ПО — DOS; ПО Сбера и банка «X» — DOS-модуль на кассе и Windows-сервер в ЛВС.


Для исключения случайностей были устроены тесты. Диалог кассового ПО с программным комплексом банка «X» во время крэш-теста изрядно повеселил. Восстановлено по логам ККМ и процессинга.


Кассовое ПО — DOS-модулю: «Провести покупку на сумму 50000 руб. по карте N!»


DOS-модуль — Windows-серверу: «Провести покупку на сумму 50000 руб. по карте N!»


Windows-сервер — процессингу: «Провести покупку на сумму 50000 руб. по карте N!»


Транзакция идёт около трёх секунд, и у нас есть время вытащить RJ-45 из кассы.


Процессинг — Windows-серверу: «ОК!»


Windows-сервер, поместив в свой буфер «ОК», DOS-модулю: «ОК!.. Эй, кассовый модуль! ОК, я тебе говорю!»


Касса молчит.


Windows-сервер — процессингу: «Отменить покупку на сумму 50000 руб по карте N!»


Процессинг — Windows-серверу: «ОК!»


И тут мы втыкаем RJ-45 обратно в кассу.


DOS-модуль (читает из буфера Windows-сервера): «Оплата — ОК!»


DOS-модуль — кассовой программе: «Оплата — ОК!»


Кассовая программа печатает чеки и слипы. Покупательница уходит с товаром и при своих деньгах.


DOS-модуль (читает из буфера Windows-сервера): «Отмена предыдущей операции — ОК!»


DOS-модуль — Windows-серверу: «Какая ещё операция? Что-то с буфером у тебя не то. Очистить буфер!»


Три раза проверили (главное в результате — воспроизводимость). Хорошо, что сервисы, висящие на тестовых портах, снимают с карты лишь тестовые рублики…



Загрузка...