Программа для управления терминалами Ingenico





Простенькая программка для управления эквайринговыми терминалами ingenico, с установленным комплексом acrus2.

Волею судьбы пришлось обновить все эквайринговые терминалы в своей организации. Раньше были неуправляемые терминалы, поэтому об актуальности библиотеки драйверов в 1С я не беспокоился. Сумма в терминалы вводилась вручную, они сами себе печатали чек, все было хорошо. А сейчас я решил взять новенькие ingenico ipp320, управляемые с компьютера, и не имеющие в себе принтеров слипов. Встроенного драйвера в моей конфигурации не было, с наскоку импортировать новую версию библиотеки подключаемого оборудования не удалось, так как версия конфигурации старая, очень сильно допиленная, и конфликты вылезали в самых неожиданных местах. И так получилось, что терминал оказался нужен вот прямо вчера.

Пришлось вспомнить молодость, и быстренько написать программку для управления терминалом, и печати слипа, минуя 1С.

Тут надо прерваться, и описать, как ожно работать с терминалом. Есть программный комплекс arcus2, который, как правило, дает представитель банка. Есть какой то com-интерфес, и для олдскулла — специальная программка CommandLineTool, которая работает из командной строки. Свойства платежа ей задаются большим набором параметров командной строки. Дальше программа связывается с терминалом, и когда тот заканчивает, записывает результат rc.out, и чек, внешний вид которого кодируется в банке, в файл cheq.out. Дальше в общем то просто — надо посмотреть в этот самый rc.out и узнать, что собственно, у нас получилось, и напечатать слип из cheq.out.

Как видно, ничего сложного. Но без нормально UI интерфейса тут делать нечего. 

Вот за эту задачу и отвечает публикуемое решение. В программу вводим параметры задачи, отправляем их в CommandLineTool, потом, когда та заканчивает, получаем итог, и печатаем чек на принтер.

Настройки программы хранятся в файле arccomm.ini, там есть два радела — параметры командной строки CommandLineTool, и настройки самой программы. Необходимо выбрать принтер для печати, я купил для этой цели noname принтер чеков, и если принтер поддреживает автоообрезку, поставить соответствующую галочку.

Штатные параметры CommandLineTool уже записаны в параметрах, если у вашей версии терминала они отличаются — можно поправить. Место, куда вставляется сумма, кодировано XXX, место, куда вставляется код авторизации для возврата — VVV.

Важный момент — в arcus2 расшифровки результата операции записаны в файл INI
c_res.ini. Файл не совсем соответствует стандарту ini, так как у него нет заголовка секции. Поэтому перед запуском надо дописать там первой строчкой вот такое значение: [general], в противном случае программа не сможет получать оттуда информацию. На функционировании самого arcus2 это не скажется.

6 Comments

  1. pakko

    А с каким банком сея приблуда работает? А то у нас Газпромбанк

    Reply
  2. kolabaister

    Это зависит не от банка, а от драйвера терминала. Писалось и тестировалось под банк россии.

    Reply
  3. Benefactor88

    Правильно ли я понял — эта прога для ввода вручную и прицепить ее к 1С никак — например сформировать текстовый файл и потом посмотреть результат — и послать чек на кассу? У нас тоже нетиповая и очень старая конфа где в помине ент торгового оборудования.

    Reply
  4. kolabaister

    Да, правильно. Это была первая разработка такого плана, и рассчитана она была исключительно на ручную работу.

    Я в итоге написал полноценный кассовый фронтэнд — здоровый программный комплекс на VC, которому 1с при проведении заказа отправляет данные по нему, и который после оплаты скидывает инфу про нее базе. Получилось довольно громоздко, но очень быстро, и при необходимости легко дописываю без возни с обновлением БПО.

    Reply
  5. user1090955

    Здравствуйте. А поделитесь исходниками? само собой за отдельную плату

    Reply
  6. kolabaister

    К сожалению, исходников этой мини утилитки не сохранилось, надобность в ней отпала довольно быстро.

    Reply

Leave a Comment

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