Подключение эквайрингового терминала ПриватБанка к 1С по протоколу JSON
Подключение Ээквайрингового терминала ПриватБанка к 1С по протоколу JSON с помощью WebSocket.
Все тестирование проводил на 1С:Предприятие 8.3 (8.3.10.2561).
- Описание
- Подробнее
Описание
Доброго времени суток, уважаемые читатели!
Я хотел бы поделиться опытом совмещения 1с из Эквайринговым терминалом ПриватБанка по протоколу JSON. При подключении магазинов использовались терминал Ingenico, Verifon и один магазин с терминалом PAX A930 из ОС Андроид.
Данный тип совмещения работает через WebSocket. WebSocket сервером выступает программка "genericDriverJson", которую предоставляет сам банк. В виде WebSocket клиента выступает 1с, из которой отправляются JSON запросы на WebSocket сервер, а он в свою очередь слушает порт (2000) терминала и отправляет/принимает с него информацию.
Для меня основной сложностью реализации данного совмещения оказалось, то что 1с не умеет напрямую работать с WebSocket и для этого необходимо использовать внешнюю компоненту. К счастью, мир оказался не без добрых людей и внешнюю компоненту я скачал из публикации:
Внешняя компонента для работы по Web-socket протоколу x32 x64 //sale.itcity.ru/public/808432/
1. Как запустить работать WebSocket сервер?
Как я уже писал ранее этим сервером выступает программа genericDriverJson. Если Вы используете подключение терминала по USB, то необходимо использовать genericDriverJsonUSB, для Ethernet -> genericDriverJsonETH. Для отладки запускать программу лучше в командной строке под администратором. Для постоянной работы на торговой точке (ТТ) можно создать службу в ручную.
Чтоб создать службу необходимо взять программу из папки …\genericDriverJsonETH_27012021 скопировать на компьютер ТТ. Я копировал в корень диска С. Дальше запустить командную строку от имени администратора и в ней выполнить команду
sc create genericDriverJsonETH binPath= "c:\genericDriverJsonETH -ip xxx.xxx.xxx.xxx" DisplayName= "genericDriverJsonETH" type= own start= auto
binPath это пусть к файлу, где вы его скопировали, ip — это айпи адрес терминала в сети.
Так же при подключении можно задать свой порт для терминала. Это необходимо если пользователи работают на удаленном рабочем сервере, а не каждый на своем компе.
c:\genericDriverJsonETH -ip xxx.xxx.xxx.xxx -wsp 3001
c:\genericDriverJsonETH -ip xxx.xxx.xxx.xxx -wsp 3002

Текст успешной работы сервера из командной строки
