Страница 1 из 1

Терминал оплаты использующий ERC протокол (JSON)

Добавлено: 08 Август 2024, 18:29
gopstop2007
Нужно подключить терминал оплаты PAX A930 (WebSocket/JSON)
Если есть готовые наработки, шаблоны и библиотеки или есть готовые решение для нескольких терминалов, готов купить.
У кого есть опыт и может чем то помочь, помогите. :)

Clarion 10 ABC

Терминал оплаты использующий ERC протокол (JSON)

Добавлено: 08 Август 2024, 23:33
Дед Пахом
Вы хотите сказать, что разработчик платёжной системы не предоставляет примеры использования? Обычно дают готовые curl-скрипты с описанием входных параметров и разбором ответа сервера.

Терминал оплаты использующий ERC протокол (JSON)

Добавлено: 09 Август 2024, 10:52
gopstop2007
Дед Пахом писал(а): 08 Август 2024, 23:33 Вы хотите сказать, что разработчик платёжной системы не предоставляет примеры использования? Обычно дают готовые curl-скрипты с описанием входных параметров и разбором ответа сервера.
Нет терминала и ограничен во времени, чтобы быстро и правильно решить задачу, а не экспериментировать на удаленке. По этому и прошу готовые решения за которые готов заплатить или просто помощи.

Терминал оплаты использующий ERC протокол (JSON)

Добавлено: 13 Август 2024, 12:17
gopstop2007
Столкнулся с проблемою и не знаю как ее решить.
Данную строку нужно дополнить дополнительным терминатором 0х00

Код: Выделить всё

{{"method":"PingDevice","step":0}
Как можно это сделать?
Для этого использую библиотеки libcurl и cJSON.

Спасибо за внимание.
В документации указано

Терминал оплаты использующий ERC протокол (JSON)

Добавлено: 13 Август 2024, 12:40
Дед Пахом

Код: Выделить всё

'<0>' & '{{"method":"PingDevice","step":0}'

Терминал оплаты использующий ERC протокол (JSON)

Добавлено: 13 Август 2024, 15:18
gopstop2007
Дед Пахом писал(а): 13 Август 2024, 12:40

Код: Выделить всё

'<0>' & '{{"method":"PingDevice","step":0}'
Спасибо, получилось.
Как правильно убрать Headers, убирал так

Код: Выделить всё

    host = '192.168.1.230:2000'     
    postparams = '<0>' & '{{"method":"PingDevice","step":0}' & '<0>'

    curl.Init()
    curl.AddHttpHeader('')
    curl.AddHttpHeader('Content-Type:')         
    curl.AddHttpHeader('Content-Length:')
    curl.AddHttpHeader('User-Agent:')
    curl.AddHttpHeader('Host:')
    curl.AddHttpHeader('Accept:')
    curl.AddHttpHeader('Accept-Charset:')
    curl.SetHttpHeaders()
    
    !curl.SetCustomRequest('')
    curl.SetHttpGET(FALSE)

    ! if ssl req'd
    curl.SetSSLVerifyHost(false)    ! do not verify host name
    curl.SetSSLVerifyPeer(FALSE)    ! verify peer
Все убирает, остается только

Код: Выделить всё

>> POST / HTTP/1.1
Как убрать?
Нужно послать голый json предполагаю, что по TCP?

Спасибо за внимание.

Терминал оплаты использующий ERC протокол (JSON)

Добавлено: 13 Август 2024, 15:51
Дед Пахом
gopstop2007 писал(а): 13 Август 2024, 15:18 Нужно послать голый json предполагаю, что по TCP?
libcurl не поддерживает протокол TCP:
curl docs писал(а):It supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.
.

Терминал оплаты использующий ERC протокол (JSON)

Добавлено: 13 Август 2024, 17:45
gopstop2007
Дед Пахом писал(а): 13 Август 2024, 15:51 libcurl не поддерживает протокол TCP:
curl docs писал(а):It supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.
.
Спасибо, прийдется через Socket делать