Подключение эквайрингового терминала ПриватБанка к 1С по протоколу JSON

Публикация № 1408984 28.07.21

Интеграция и обмен данными - Эквайринг

ПриватБанк совмещение JSON WebSocket

Подключение Ээквайрингового терминала ПриватБанка к 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 //soft.crimea.com/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

 

 

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

 

 

2. Как запустить работать WebSocket клиент

Клиентом выступает программа 1с, к которой подключается внешняя компонента для работы с WebSocket. Для этого была написана обработка. В обработке при открытии происходит подключение внешней компоненты и потом подключение WebSocket-а.

Внешний вид формы. При успешном подключении светится зеленым цветом "Терминал подключен", если подключение неудачное красным "Подключите терминал" 

 

 

Обработку прикреплю в низу статьи, но без самой компоненты (внешнюю компоненту можете скачать в публикации  по тексту выше) и добавить в ОбщийМакет.WebSocket.

Когда вводим сумму и нажимаем кнопку Оплата, формируется JSON запрос такого формата:

 

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

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
	
	Если Источник = "WssExt2" Тогда
		Если Событие = "Ошибка" Тогда
			
		ИначеЕсли Событие = "Подключено" Тогда
			Подключено = Истина;
			ПоказатьОповещениеПользователя("Подключение", , "Подключено к " + Данные);
			УстановитьДоступность();
		ИначеЕсли Событие = "Отключено" Тогда
			Подключено = Ложь;
			ПоказатьОповещениеПользователя("Отключение", , "Отключено (код " + Данные + ")");
			УстановитьДоступность();
		ИначеЕсли Событие = "Сообщение" Тогда
			
			Результат = Новый Структура("СоответствиеДанных, ОписаниеОшибки", Новый Структура, "");
			
			//Данные = ПодтасоватьДанные(); // для тестирования оплаты без фактической оплаты по терминалу
			
			РазобратьОтвет(Данные, Результат);		
			ОбработатьРезультат(Результат);
		КонецЕсли;
	КонецЕсли;
	
	Если Подключено Тогда
		Элементы.Статус.Заголовок = "Терминал подключен";
		Элементы.Статус.ЦветТекста = Новый Цвет(50, 205, 50);
	Иначе
		Элементы.Статус.Заголовок = "Подключите терминал";
		Элементы.Статус.ЦветТекста = Новый Цвет(255, 0, 0);
	КонецЕсли;
	
КонецПроцедуры


 

Скачать файлы

Наименование Файл Версия Размер
Подключение Эквайрингового терминала ПриватБанка по протоколу JSON:

.epf 10,58Kb
34
.epf 10,58Kb 34 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. it.m.msv 18.10.21 15:45 Сейчас в теме
Добрый день. Сможете помочь с Подключение эквайрингового терминала ПриватБанка к BAS Розница, если да то как с Вами связаться?
2. Ditron 180 11.11.21 20:18 Сейчас в теме
(1)для подключения к типовым, как драйвер торгового оборудования, нужно писать компоненту, такой вариант (в публикации) хорош для самостоятельной интеграции, ну или переписывать типовые механизмы! Автору респект и спасибо за рекламу моего вебсокет-клиента ))). Но слишком много прослоек на пути к железяке: служба, компонента; там есть прямой интерфейс…
3. Timow 26.11.21 19:18 Сейчас в теме
(2) Подскажите как можно подключить без прослоек, какой интерфейс имеется ввиду?
4. Ditron 180 26.11.21 19:20 Сейчас в теме
(3)написать компоненту работающую напрямую по протоколу JSON
6. Kaldor_Drago 20.12.21 18:15 Сейчас в теме
(4) Железяка работает с байтами, а не с JSON. Прослойка собственно умеет парсить текст JSON в читаемый формат терминала (массив байт с окончанием байта 0x00) и наоборот. Ваша же компонента получает строку ответа от сервера, и вот вопрос что компонента делает с этими байтами?
7. Ditron 180 20.12.21 18:55 Сейчас в теме
(6)я вас огорчу, есть прошивка, которая парсит без "прослойки", отправляется строка json null терминированный прямо в порт...

(6)
Ваша же компонента получает строку ответа от сервера, и вот вопрос что компонента делает с этими байтами?
вот тут вообще не понятно о чем речь
8. Kaldor_Drago 20.12.21 20:36 Сейчас в теме
(7) Вы же сами написали что нужна другая компонента , работающая по протоколу json, тогда по какому протоколу работает ваша компонента? И вообще нет такого протокола, если мы говорим о прикладном уровне.

Вы имеете ввиду прошивку терминала, которая сама умеет преобразовать json текст?

В любом случае нужна компонента, можно получить демо версию вашей и какие у нее ограничения?
10. Ditron 180 20.12.21 21:20 Сейчас в теме
(8)я разве писал о том что не нужна или нужна компонента? Я написал что можно напрямую отправлять пакеты на устройство, минуя вебсокеты!
Компонента нужна не в любом случае! Например если вы собираетесь написать свой рмк, то БПО можно не использовать, и отправляйте себе на Здоровье в порт устройства и читайте из него прямо из 1с, обмен на терминалах всегда запрос-ответ(подтверждение-ответ). Если хотите подключать по БПО, тогда пишите или покупайте готовую. Что такое «протокол» мне известно).
И та компонента, которая указана в публикации (моя) никакого отношения к пос терминалам не имеет, это просто универсальный инструмент для обмена 1с-websocket… автор удачно прикрутил ее как промежуточное звено, но проблема как раз в том что при таком раскладе речи о БПО и быть не может)
У меня есть библиотека для пос по ecr bpos1, здесь же ведётся речь о другой версии прошивки Приватбанка
12. Kaldor_Drago 20.12.21 23:20 Сейчас в теме
(10) Не хотел умничать или упрекнуть в чем-то, просто хочу для себя понять так есть в планах реализовать похожее решение.

Не совсем понял что означает "БПО". Какой использовать механизм отправки данных прямо в порт устройства?
Приват дает разъяснение: "Библиотека JSON протокола вшита в ПО терминала. Работать с терминалом напрямую через WebSocket можно при любом подключении. При совмещении напрямую с терминалом - кассовое ПО работает по порту (при USB подключении) или по TCP. Там не нужен ни websocket ни http. JSON конвертируется в массив байтов, добавляется байт 0x00 и отправляется прямо в порт или по сети"
Насколько я понял можно подключаться напрямую к терминалу и отправлять запросы через сторонние библиотеки Windows по типу "MSCOMMLib.MSComm" для подключения через USB или использовать внешнюю компоненту для работы с WS при Ethernet подключении. И я так понял, что для Ethernet подключения ваша компонента также должна подойти как для подключения напрямую к терминалу так и для работы через промежуточное ПО "genericDriverJson", которое просто ретранслирует запрос к терминалу по средством WebSocket.

Вот собственно я и ищу готовую компоненту для реализации подключения через WebSocket для tcp протокола. Спасибо за содействие)
13. Ditron 180 21.12.21 08:29 Сейчас в теме
(12)капец, я об этом и написал изначально! БПО - библиотека подключаемого оборудования. Уже есть- тестировать не на чем(
5. z86 55 06.12.21 13:54 Сейчас в теме
а можна два термилала одновлемено подключить ?
9. Kaldor_Drago 20.12.21 20:46 Сейчас в теме
(5) В теории можно, только надо порты разные указать у терминалов и возможно каждый раз переподключаться к каждому из них или использовать два экземпляра компоненты для подключения.
А вот для подключения нескольких клиентов к терминалу этот метод не будет работать.
11. Ditron 180 20.12.21 21:24 Сейчас в теме
(5)установите несколько служб с разными параметрами подключения терминала и портов вебсокета, и подключайтесь на Здоровье, сколько терминалов столько и служб (серверов)
16. пользователь 12.02.22 14:46
Сообщение было скрыто модератором.
...
17. пользователь 31.08.22 17:34
Сообщение было скрыто модератором.
...
14. Kaldor_Drago 27.12.21 01:44 Сейчас в теме
Вопрос к автору, Версия 1 компоненты подойдет для реализации подлкючения, на нем велась реализация?
15. user1740641 08.02.22 16:27 Сейчас в теме
Добрый день! Подскажите можете ли вы помочь в подключении кассы IRAS A930 (PAX А930) к 1С:Розница (базовая) 2.3.10.43. Чтобы чеки печатались именно с 1с?

Прошу написать на электронный адрес natusik_mihalva@mail.ru
Оставьте свое сообщение

См. также

[Расширение] Временное отключение онлайн-эквайринга в РМК (УТ 11.4, Розница 2.3) Промо

Розничная торговля Рабочее место Эквайринг Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Управленческий учет Абонемент ($m)

Расширение предназначено для исправления исключительных ситуаций, когда оплата по эквайринговому терминалу с подключением оборудования прошла успешно, но чек на ККТ не был фискализирован. Расширение позволит временно отключить онлайн-эквайринг непосредственно из формы РМК.

1 стартмани

14.12.2020    19164    80    RocKeR_13    18    

Загрузка отчетов эквайринга Сбербанка, в том числе по QR оплатам

Эквайринг СБП. Оплата по QR-коду Загрузка и выгрузка в Excel Платформа 1С v8.3 1С:Управление торговлей 11 Бухгалтерский учет Управленческий учет Абонемент ($m)

2 обработки: - обработка для загрузки отчетов эквайринга по QR оплатам. Типовая обработка 1С грузит из XML файлов, а по QR оплатам сбербанк присылает архив с xlsx файлами. Для загрузки таких выписок сделана обработка. - обработка для более удобной загрузки отчетов по обычным терминалам. Типовая обработка 1С грузит отдельно из XML файлов по одному, а сбербанк присылает архив с большим количеством файлов. Для пакетной загрузки всех файлов из архива сделана обработка.

1 стартмани

03.12.2022    440    0    vitek_chainik    0    

Прием онлайн платежей от Сбера по ссылке

Банковские операции WEB-интеграция Эквайринг Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Расширение для формирования ссылки на оплату и http-сервис для приема этих платежей.

10 стартмани

14.11.2022    668    1    andryandry    0    

Внешняя компонента для работы по Web-socket протоколу x32 x64 Промо

Разработка внешних компонент WEB-интеграция Платформа 1С v8.3 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

2 стартмани

30.03.2018    45703    108    Ditron    120    

Загрузка отчетов банка по эквайрингу из Excel в УТ 11.5 и КА 2.5

Эквайринг Обработка документов Загрузка и выгрузка в Excel Платформа 1С v8.3 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Бухгалтерский учет Абонемент ($m)

Данная обработка позволит загрузить из Excel эквайринговые операции и создать по ним документы "Отчёт банка по эквайрингу".

1 стартмани

02.11.2022    599    4    serg_art    0    

Оплата по QR коду СБП (по API от Сбербанка) для 1С: Управление торговлей 11.5

Банковские операции Эквайринг СБП. Оплата по QR-коду Платформа 1С v8.3 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Абонемент ($m)

Расширение для приема оплат по QR-кодам СБП (по API от Сбербанка). Делалось под логику работы менеджера "Выстрелил и забыл": - менеджер создает заказ и кидает клиенту ссылку для оплаты (в нашем случае их несколько); - при получении денег АВТОМАТИЧЕСКИ создается документ "Операция по платежной карте". Чек не пробивается специально (в УТ 11.5 присутствует стандартный механизм, чтобы фискализировать чек и отправить клиенту на почту). - АВТОМАТИЧЕСКИ создается документ отгрузки "Реализация товаров и услуг". - Склад печатает документы отгрузки и пробивает чек на ККТ. - Доставка - доставляет. В постскриптуме добавлю, хотел решить проблему тормозов при проведении документов отгрузки. В некоторых случаях при нагрузке на базу 3 и более документа реализации в минуту, база начинает жутко висеть из за большого количества клиент-серверных вызовов. Перенося всю логику на сервер имеем существенный выигрыш в скорости.

6 стартмани

30.09.2022    1360    9    average    0    

Загрузка отчета эквайринга банка Тинькофф в УТ 11

Эквайринг Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Обработка для загрузки ежедневного отчета по эквайрингу из файла формата CSV.

1 стартмани

26.07.2022    1154    1    oleg-x    0    

СБП Тинькофф для УТ 11.4

WEB-интеграция Эквайринг Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Расширение для УТ 11.4.14.140, работа с СБП через API Тинькофф.

2 стартмани

25.07.2022    1501    6    lordworld17    3    

Оплата по QR СБП. Управление торговлей 11

Банковские операции Розничная торговля Эквайринг Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Обработка позволяет обрабатывать платежи от клиентов в форме РМК. Оплата проводится как оплата картой на указанный в настройках эквайринговый терминал. Реализована возможность оформления возврата по ранее проведенной оплате. QR формируется непосредственно для оплаты, без промежуточных переходов и выхода из банковского приложения.

1 стартмани

28.06.2022    2439    38    Leo_A    34    

Управление эквайринговым терминалом + контрольная лента

Розничная торговля Эквайринг Платформа 1С v8.3 Оперативный учет Управляемые формы 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

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

1 стартмани

09.04.2022    1998    2    kobayoshi    0    

[Расширение] Комиссия банка из назначения платежа по пользовательским шаблонам БП 3.0

Банковские операции Эквайринг Обработка документов Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Абонемент ($m)

Расширение для выделения комиссии банка из поля "Назначение платежа" документа "Поступление на расчетный счет" с видом операции: "Поступление по платежным картам"(комиссия за эквайринг) для 1С:Бухгалтерия предприятия 3.0. Особенности: можно самому задавать шаблоны для поиска комиссии банка (комиссия, ком., комиссии и др.) и отключать поиск комиссии, когда нужно. Также если в назначении платежа есть несколько комиссий, то они суммируются.

3 стартмани

11.02.2022    2770    11    shtinalex    22    

Эквайринговые операции (Приват банк)

Банковские операции Эквайринг Платформа 1С v8.3 Конфигурации 1cv8 Бухгалтерский учет Управленческий учет Абонемент ($m)

Обработка предназначена для управления эквайринговыми терминалами Приват банка.

1 стартмани

24.01.2022    2932    10    war41k    18    

Автоматическая сверка итогов по эквайрингу при закрытии смены в УТ 11.4 / 11.5

Кассовые операции Эквайринг Розничная торговля Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Абонемент ($m)

Автоматическая сверка итогов в УТ 11.4 / 11.5 при закрытии смены плюс добавлена кнопка сверка итогов на РМК.

2 стартмани

27.09.2021    6241    64    spodAlex095    19    

Быстрое создание ПКО или эквайринговой операции на основании реализации для УТ 11.4

Розничная торговля Кассовые операции Рабочее место Эквайринг Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Абонемент ($m)

Если организация проводит в день много продаж с полной оплатой через реализации, то это расширение поможет сократить время оформления документов для кассира. В документе реализации товаров и услуг добавлены две кнопки "Оплатить наличными" и оплатить картой". Они создают документы оплаты (ПКО или эквайринговую операцию), заполняют все необходимые реквизиты, проводят документ и открывают окно с предпросмотром чека.

2 стартмани

18.09.2021    4141    12    Anna_arbuz    4    

Подключение эквайрингового терминала СБ РФ (dll на 7 параметров)

Эквайринг Платформа 1С v8.3 1С:Управление торговлей 10 1С:Розница Россия Абонемент ($m)

Обработка ТО (для УТ 10.3 или Розница 1.0) подключения эквайрингового терминала СБ РФ (sbrfcom.dll на 7 параметров). По умолчанию сотрудники СБ РФ стали ставить dll на 7 параметров, а в конфигурации есть только на 3 параметра.

1 стартмани

16.07.2021    4879    31    Bujum    4    

[Расширение] Автозаполнение суммы комиссии из Назначения платежа для БП 3

Банковские операции Эквайринг Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

Расширение: выделение (автозаполнение, установка, заполнение) суммы комиссии банка для операций эквайринга по данным "Назначения платежа" для документа "Поступление на расчетный счет" для конфигурации 1С:Бухгалтерия предприятия, ред. 3.0 (базовая/проф/КОРП).

1 стартмани

15.06.2021    8060    48    zhuravlev_as    95    

Автономная эквайринговая система

Эквайринг Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Абонемент ($m)

Обработка для работы с автономным эквайринговым терминалом, который не подключен к компьютеру.

1 стартмани

28.05.2021    2949    1    Miket78    0    

Интеграция 1С: УТ 11.4 и эквайринга Сбербанка

WEB-интеграция Эквайринг Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Интеграция 1С: УТ 11.4 и интернет эквайринга через API для принятия оплаты от клиентов через интернет-эквайринг Сбербанка и автоматический учет оплат по заказам покупателей в 1С.

4 стартмани

27.05.2021    5647    30    Hexkiller    13    

Обслуживание эквайринговых терминалов Ingenico IPP320 для УТ 10.х

Эквайринг Платформа 1С v8.3 1С:Управление торговлей 10 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Абонемент ($m)

Обработка обслуживания эквайринговых терминалов Ingenico IPP320 (ПО Arcus2) для УТ 10.х. позволяет подключить банковские терминалы Ingenico IPP320 к 1С:Управление торговлей, редакция 10.

2 стартмани

06.05.2021    5263    47    master-73    18    

Комиссия банка из назначения платежа при загрузке выписки

Банковские операции Обработка документов Эквайринг Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

Автоматическая подстановка комиссии банка при эквайринге при загрузке банковской выписки.

1 стартмани

20.04.2021    5894    31    Dima_Mazhor    21    

Описание работы внешней компоненты 1С SBRFCOM.DLL для обслуживания банковских карт

Эквайринг Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Описание работы внешней компоненты 1С SBRFCOM.DLL для обслуживания банковских карт, приведены методы и функции по работе с данной компонентой.

1 стартмани

09.03.2021    7912    36    artemua    8    

Обработка ТО для эквайринговых терминалов Сбербанка и sbrfcom.dll с 7ю параметрами

Эквайринг Платформа 1С v8.3 1С:Управление торговлей 10 Россия Абонемент ($m)

Сбербанк почему то принудительно переводит клиентов на версию своей библиотеки sbrfcom.dll с 7ю параметрами. Эта обработка обслуживания позволяет корректно работать с такой библиотекой

2 стартмани

09.09.2020    5936    34    kauksi    9    

Несколько эквайринговых систем от Сбербанка на одном компьютере

Эквайринг Платформа 1С v8.3 1С:Управление торговлей 10 1С:Розница Абонемент ($m)

Несколько эквайринговых систем от Сбербанка на одном компьютере (используется на сервере терминалов.)

1 стартмани

29.10.2014    17997    68    Tarlich    2