Дорбый день. Помогите плз, такая задача: подключиться к POS-терминалу Приват Банка именно по протоколу JSON из 1С 8.х. Есть драйвера в частности ВебЧек знаю, но этот драйвер по сути как я понимаю и делает что принимает запрос от программы 1С в формате какой придумали разработчики ВебЧек и ретранслируют его через JSON запросы в понятный для POS-терминала. Так вот хочется напрямую работать, не использую промежуточный драйвер. Начальные условия: - POS-терминал Привата VeriFone VX520 (но єто не важно, Приватовские все по JSON должны работать) - подключил его по сети (Lan) есть IP 192.168.10.123 - в документации Привата указано что работать нужно по порту 2000 - и обаботка с текстом ниже в любой 1С 8.2 конфигурации, пробую примитивнейшую команду отправить на терминал и получить ответ
Сервер = "192.168.10.123"; Порт = 2000; Попытка HTTPСоединение = Новый HTTPСоединение(Сервер,Порт,,,,30,,Ложь); Исключение Сообщить("1 " + ОписаниеОшибки()); Возврат; КонецПопытки;
//структура для JSON Данные = Новый Структура(); Данные.Вставить("method", "PingDevice"); Данные.Вставить("step", 0);
ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, Данные); ЗапросJSON = ЗаписьJSON.Закрыть();
HTTPЗапрос = Новый HTTPЗапрос(ЗапросJSON); HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос.УстановитьТелоИзСтроки(ЗапросJSON, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать); Попытка Результат = HTTPСоединение.Получить(HTTPЗапрос); Сообщить(Результат); Исключение ОписаниеОшибки = ИнформацияОбОшибке().Описание; Сообщить("2 " + ОписаниеОшибки()); КонецПопытки;
POS-терминал при выполнении процедуры пищит, то есть он что-то получает, но в результате программа 1С выдает: 2 {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(252)}: Помилка при виклику методу контексту (Получить): Помилка роботи з Інтернет: Unsupported protocol И немогу ума приложить что не так..
Anderson @ Сегодня, 21:00
, Ни при чем, я имею ввиду что можно подключить POS-терминал через драйвер ВебЧека или еще какой, но меня это не устраивает. Я хочу именно через JSON запросы напрямую с терминалом.
mfadmin_2024 @ Вчера, 17:23
, Мы когда подключали банковский терминал привата, правда не HTTP, то долго игрались, но потом оказалось, что на самом терминале нет тот протокол был установлен. Обнаружили это только когда приват решил к нам прислать их специалиста по настройке терминала. В инструкциях у них нигде такие моменты почти не описаны. И как оказалось, то нужные настройки можно получить просто позвоним оператору, сказать конкретно что именно нужно и они их высылают на терминал тут же. достаточно его перезагрузить. У нас было похожее - отправляли на терминал данные, он загорался, начинал пищать, но в ответ ошибка подключения была. Как разобрались - больше проблем не было и настройка терминала заняла 5 мин.
gesha2281 @ Сегодня, 9:48
, Спасибо большое, сегодня позвоню в Приват перепроверим что они там прописали именно JSON протокол. Хотя через тестовую их программу вроде они там как раз JSON протоколом ту же каманду отправляют и получают ответ, но правда там екзешник - что там внутри и на каком языке отправляется точно не понятно.
Anderson @ Вчера, 22:51
, Мы так с Вами может лет через пять к сути доберемся )) Конечно читал инструкцию, более того Приват сам декларирует что все его терминалы работают именно по протоколу JSON. И про ВебЧек я вспомнил чтоб мне не советовали установить ВебЧек и через него работать - оно так можно, но не хочу. И терминал в розетку не забыл включить. И соединение и IP адрес проверил.
mfadmin_2024 @ Сегодня, 10:32
, Перепроверили, JSON протокол включен на POS-термсинале, вроде все ок. Через эмулятор от ПриватБанка POS-терминал работает и команды выполняет, а вот напрямую из 1С нет, пищит и выдает ошибку: {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(38)}: Помилка при виклику методу контексту (Получить): Помилка роботи з Інтернет: Unsupported protocol
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(38)}: Помилка при виклику методу контексту (Получить): Помилка роботи з Інтернет: Unsupported protocol
Ну если он по http работает то ок. Но что вы пытаетесь получить(т.е GET) через метод получить? Попробуйте POST.
Цитата(mfadmin_2024 @ 28.09.24, 10:32)
Конечно читал инструкцию, более того Приват сам декларирует что все его терминалы работают именно по протоколу JSON.
Просто я встречал работу через драйвер Addin.a_ingenicopb1c81 , JSON это уже интересней.
mfadmin_2024 @ 28.09.24, 21:57
, В описании вот нашел еще такое: Основа цього протоколу (далі - Протокол) - формат обміну даними JSON. Для спрощення обміну даними, байтові послідовності JSON завершуються символами-термінаторами (делімітерами) 0x00 (як рядки в мові С). Застосування делімітера покликане слугувати заміною керуючим ASCII кодам, що застосовуються в подібних протоколах. Протокол єдиний для всіх типів підключення. Внаслідок цієї установки, у разі роботи з послідовним портом, він виконує роль протоколу канального рівня. У разі IEEE 802.x, оскільки дейтаграми упаковуються в TCP/IP, протокол стає прикладним, не змінюючись за змістом.
mfadmin_2024 @ Сегодня, 8:57
, обмін йде через ТСР, наскільки я пам'ятаю. Вам треба сформований JSON перегнати в binary data, відправити через ТСР на відповідний порт, а потім слухати його, отримувати відповідь в вигляді binary data, конвертувати в текст, прочитати як JSON і далі працювати вже з цим об'єктом
mfadmin_2024 @ 30.09.24, 9:27
, доброго дня. вийшло в вас?
alexxbely @ 30.09.24, 9:10
, доброго дня. а конкретніше реалізацію не підкажете? тсд на "мобільна каса для розробника", еквайриновий термінал приват pax по вайфай, в одній мережі з тсд
anriuz @ 14.01.25, 2:53
, Приєднуюсь до питання, щось вийшло з цього? У мене зараз термінал підєднаний до 1С через websocket - начебто все працює, але є затримка у 2-3 секунди від натискання Оплата в 1С до включення терміналу для оплати Хотілося би прискорити і гадаю - напряму через JSON було б швидше
Выдержка из документации по ECR протоколу Приватбанка
"Терминал не является полноценным сетевым сервером. В Протоколе отсутствует управление доступом и предотвращение коллизий. Для реализации подобного функционала необходимо разрабатывать собственное ПО - транслятор в websocket, HTTP(S), другой выбранный протокол/транспорт."
Это значит, что HTTP запросами из 1С с ним работать не получится. Работа с ними ведётся по протоколу TCP, а его реализации в 1С нет. Нужно прикручивать сторонние компоненты.
Увидел, что в платформе начиная с версии 8.3.27 добавлен объект метаданных WebSocket-клиент - возможно им получится реализовать работу, не знаю, буду пробовать.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!