Download the PHP package bigperson/modulpos-php-api-client without Composer
On this page you can find all versions of the php package bigperson/modulpos-php-api-client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download bigperson/modulpos-php-api-client
More information about bigperson/modulpos-php-api-client
Files in bigperson/modulpos-php-api-client
Package modulpos-php-api-client
Short Description PHP client for modulpos API Fiscal Service
License MIT
Informations about the package modulpos-php-api-client
PHP клиент для API автоматической фискализации чеков интернет-магазинов Модуль.Кассы
Пакет предоставляет удобный интерфейс для общения с API Модуль.Кассы для отправки данных чеков в сервис фискализации. Пакет упрощает разработку модулей интеграции интернет-магазина с севисом фискализации Модуль.Кассы.
Часть описания дублирует оригинал документации по API Модуль.Кассы
Требования
- php ^7.1
- guzzlehttp/guzzle (или любой клиент следующий интерфейсу
\GuzzleHttp\ClientInterface
) - ext-json
- curl
Установка
Вы можете установить данный пакет с помощью сomposer:
Для PHP 5.4-7.0 можеете использовать предыдущую версию
Использование
Схема процесса фискализации подробна описана в документации к API. В кратце необходимо связать точку продаж с интернет магазином, настроить отправку данных чеков и проверить статус отправленного чека.
Создания связки аккаунта и розничной точки
Для начала необходимо в личном кабинете Модуль.Кассы создать розничную точку продаж, активировать у неё функцию Использовать для печати документов интернет-магазина
и получить идентификатор uuid
. Далее вызываем связку
В $result
получим массив с данным userName
и password
которые будут использоватся для дальнейших обращений к API. Их нужно где-нибудь сохранить, например в базе данных.
Отправка данных чека на сервер фискализации (создание документа)
Для начала необходимо сформировать данные самого чека. Для этого достаточно для ваших моделей инплементировать интерфейсы ModulposOrderInterface для заказа, ModulposOrderItemInterface для товара в заказе, ModulposPaymentItemInterface для способа оплаты. Также вы можете использовать entity из пакета, или отнаследовать от них собственные классы переопределив методы на собственные.
Далее объект заказа необходимо передать клиенту, также вы можете передать responseURL
и печатать ли чек на кассе:
Все параметры кроме $order - опциональные. Если не передан объект ModulposCashierInterface
то будут использованны данные из настроек торговой точки.
В ответ придет массив со статусом обработки документа и фискального накопителя.
Проверка статуса документа
Если при передаче данных чека был передан responseURL
, то на него придет результат фискализации, если параметр задан не был, то вы можете самостоятельно проверить статус документа:
В ответ придет массив со статусом status
, который может принимать значения:
- QUEUED - документ принят в очередь на обработку;
- PENDING - документ получен кассой для печати;
- PRINTED - фискализирован успешно;
- COMPLETED - результат фискализации отправлен (если было заполнено поле responseURL) в сервис источник;
- FAILED - ошибка при фискализации.
Также в массив придет fnState
- статус фискального накопителя, может принимать значения:
- ready - соединение с фискальным накопителем установлено, состояние позволяет фискализировать чеки
- associated - клиент успешно связан с розничной точкой, но касса еще ни разу не вышла на связь и не сообщила свое состояние
- failed - Проблемы получения статуса фискального накопителя. Этот статус не препятствует добавлению документов для фискализации. Все документы будут добавлены в очередь на сервере и дождутся момента когда касса будет в состоянии их фискализировать
Кроме того вы можете вызвать отдельно метод проверки статуса фискального накопителя (сервиса фискализации):
Развитие пакета
С целью активного развития пакета, рекомендуем создавать пулл-реквесты, а не только баг-репорты (issues). По любым проблемам рекомендуем открывать Баг-репорты с подробным описанием проблемы и последовательностью действия для воспроизведения бага.