Предисловие

Кассатку как и всю технику Чек-Онлайн можно прикручивать к интернет магазинам!

Да это реальная возможность ! Но платная ! 1000р/мес.
Но при этом вы можете работать на кассе в обычном режиме - с кнопок или в режиме ФР.

Управление с интернет магазина идет по TCPIP. Пакет , который надо послать в кассе с сайта для пробития чека в простом json формате.

Пробуйте - есть тестовый период 7 дней .



Итак имеем открытый протокол для управления кассой по TCPIP POST запросом с передачей данных в формате json. Протокол 3.5.27 на 2019г.

Лучше сразу скачать postman программу в интернете и там тестить запросы

фотка 1

Реально , чтобы процесс пошел быстро просто качаем бесплатную прогу postman. Это все что надо для посылки post json запросов на любой ip без лишних проблем.

Есть еще более трудный путь : htaccess, redirect, CURL ...

Читайте далее в этой ветке как кидать запросы кассе из PHP

Как не надо тестировать, чтобы не убить вагон времени

К сожалению просто сделать тестовую страницу на своем сайте и посылать JSON данные через js ajax на IP кассы НЕ получится, т.к. в браузерах срабатывает защита CORS (доменные имена разные):

Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на http://192.168.1.125:4444/fr/api/v2/PrintLog. (Причина: не удалось выполнить запрос CORS

Ajax запросы можно слать ТОЛЬКО на тот же домен

Например : с http://kkmspb.ru на http://192.168.1.125 на скрипте js не получится передать данные.

Сами HTML формы в формате JSON данные посылать тоже не могут.

Интерактивно (ручками) через кнопку sumbit формы получится переход с http://kkmspb.ru на http://192.168.1.125, но данные никак не будут в формате JSON.


Что делать?Что делать?

Для проверки работы протокола для управления кассой по TCP-IP пробовали следующий метод:

на сервере kkmspb.ru в .htaccess у нас примерно настроено так :

RewriteCond %{SERVER_PORT} ^4444$
RewriteRule .* http://xxx.xxx.xxx.xxx:3333 [L]


где xxx.xxx.xxx.xxx внешний ip сервера нашей организации, за которым находится реально наша Кассатка 7.

На xxx.xxx.xxx.xxx естественно надо пробросить порт 4444 извне на внутренний 192.168.1.125 (ip кассы)

И это не сработает , т.к. RewriteRule вернет сразу нашему браузеру переход на другой ip (xxx.xxx.xxx.xxx) прям в командной строке (увидите). И браузер скажет CORS.

Остается только вариант делать второй запрос через CURL

По начальным символам url /fr/ переходим на спец.страницу , где через curl делаем запрос на нашу кассу

RewriteCond %{REQUEST_URI} ^/fr/(.*)$
RewriteRule .* /test_redirect.php [L] 

И тут браузер НЕ заподозрит ничего. Ибо вы же на своем сервере программируете, значит знаете , что делаете. Зона ответственности браузера заканчивается и наступает ваша ответственность . В итоге запрос сможет быть выполнен и ответ будет передан обратно браузеру.

Например JSON данные такого формата выполнятся нормально:

"RequestId":"m05m3oxdyts8s80g4osgssgk800g8sw","Password":30,"Request":{"LogSize":"100"}}

Обратите внимание"Password":30 , значение 30 нельзя помещать почему-то в кавычки.