Щойно завершив проект інтеграції терміналів Ingenico ПриватБанку з 1С:Підприємством – продажі, повернення, з автоматизованою роботою з Бонус+.
В результаті клієнт отримав стабільний образ на базі Debian linux, який можна легко встановити на віртуальну машину чи фізичний сервер, і використовувати як універсальний інтерфейс з простим API для обробки оплати картками.
В 1С:Підприємстві є стандартна компонента для роботи з такими терміналами, але з нею є серйозні проблеми:
- періодичні падіння 1С під час оплати
- некоректна обробка деяких помилкових ситуацій – термінал проводить платіж, а в систему приходить помилка
- немає ніякої підтримки Бонус+, відповідно касиру треба вводити цю інформацію вручну, а касири періодично помиляються
Тому було вирішено зробити власну інтеграцію, що була б позбавлена цих проблем.
Взагалі ці термінали можуть працювати в декількох режимах, залежно від налаштування їх банком – незалежно від комп’ютеру, по USB-з’єднанню, або по Ethernet-з’єднанню. Також, при з’єднанні по USB може використовуватися один з двох протоколів – 4in1 або BPOS. З з’єднанням по Ethernet доступний тільки BPOS.
Так як з’єднання по USB – це додаткова точка ненадійності, дріт періодично ламався, або з’єднання було нестабільним – ми обрали з’єднання по Ethernet.
Для вирішення проблеми падінь, причина яких могла бути як в компоненті інтеграції, так і в бібліотеці, наданій банком, було вирішено використовувати “проксі”-сервіс, що буде спілкуватися з терміналом з використанням наданої банком бібліотеки, і модуль в 1С:Підприємстві, що написаний з використанням стандартних функцій 1С, і спілкується з “проксі”-сервісом.
В результаті, процес оплати виглядає приблизно так:
1. 1С-клієнт на касі відправляє HTTP-запит до написаного сервісу, і передає деталі транзакції – ідентифікатор терміналу, сума, мерчант та інше.
2. Сервіс обробляє параметри, визначає IP-адресу терміналу і виконує процедуру оплати через термінал
3. Коли термінал повертає результат оплати, передає його у відповіді HTTP-запиту – і 1С може зафіксувати результат транзакції.
Також є адмін-панель, що працює в браузері, для додавання/редагування/видалення підключених терміналів, перегляду інформації і т.п.
На даний час виконана інтеграція стабільно працює декілька місяців на користь бізнесу клієнта.