Итак начинаем встраивать свой плагин в движок Webasyst. Как это происходило на практике и какой инструмент мы использовали.
Первым делом создаем сервер апаче на своем локальном компьютере (localhost)при помощи установщика xampp (наверное это самый быстрый способ). Также там установится mysql, phpnyadmin.
Далее мы копируем какой-нибудь установленный плагин (например payanyway прием платежей) и переделываем под свой например bitdrvkkt (да простят меня другие разработчики, но код то открытый).
Bitdrvkkt будет только фискализировать чеки (на кассовом аппарате в вашем офисе удаленно), то есть по факту тип оплаты только наличные могут быть (на этом пока ограничимся).
Работать оплата за наличные у нас будет при оформлении заказа, то есть при вызове checkout (оформить заказ).
Кстати это совсем не правильная общая логика, так как получится, что сам клиент создаёт документ оплата за наличные, а должен создавать продавец после получения этих самых наличных.
Но тем не менее лучше один раз попробовать сделать плагин чем много раз прочитать.
Далее лучше сразу проставить вывод сообщений в свой файл лога через wa::Log во всех функциях класса плагина.
xDebug
Далее очень рекомендуем установить среду разработки VS Code (под Виндоус) и расширение xDebug для отладки PHP. Это реально сразу покажет какие параметры куда передаются и много другое.
И наконец мы начинаем понимать логику работы плагина в системе Webasyst.
Плагин взаимодействует со сторонним ресурсом (в нашем случае сайт kkmspb.ru) и использует его как часть своей сущности.
Итак для оплаты в плагине должен быть реализован метод payment, который открывает какую-то страницу на сайте kkmspb.ru (назовем ее aaa.html) и передает туда содержание чека для пробития.
Далее плагину надо только ответить вызовом определенной страницы на webasyst как закончилась операцию я успешно или нет.
Кстати url-ы страниц для обратной связи (успешной и не успешной) также передаются в составе параметров чека.
Итак наша задача принять чек и поставить его в очередь на пробитие на сайте kkmspb.ru.
Или дождаться полного пробития чека и только потом вернуться на Webasyst.
В любом случае Webasyst-у надо знать только одно из двух: успешно или нет.
Второй вариант получше будет.
На самом деле можно ещё реализовать и дополнительный вызов для получения расширенных параметров чека с Webasyst. Отправляется он на тот же урл куда отправляется и ответ. Кстати все эти вызовы будут отрабатываться на стороне Webasyst в методе callback вашего плагина.
Таким образом мы имеем полноценную двухстороннюю связь с каким-то ресурсом в интернете.