vlsv / platformaofd-api-client
Клиент для работы с PlatformaOFD Client API
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.0.1
- symfony/serializer: ^v7.1.6
- symfony/serializer-pack: ^v1.3.0
- symfony/validator: ^v6.0.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
- phpunit/phpunit: ^11.0.1
README
Клиент для работы с PlatformaOFD Client API
PlatformaOFD Client API — программный интерфейс для получения информации о кассах пользователя и работы с документами данных касс.
Возможности:
С помощью данного клиента пользователь может получать следующую информацию:
- Кассы - список касс, зарегистрированных в личном кабинете «Платформы ОФД»;
- Документы кассы - список всех документов кассы за период;
- Отчеты о закрытии смены - отчеты о закрытии смены кассы (Z-отчетов) за период;
- Чеки - кассовые чеки (БСО), чеки (БСО) коррекции кассы за период;
- Чеки с тегом 1084 - выборка кассовых чеков по значению из тегов 1084, либо с заполненным тегом 1084, либо поиск кассового чека (БСО), чек (БСО) коррекции с определенным значением тега 1084.
Зависимости
Для выполнения запросов к API используются токены. Предоставление значения осуществляется оператором фискальных данных в индивидуальном порядке.
Установка библиотеки
composer require vlsv/platformaofd-api-client
Работа с API
Пример конфигурации клиента смотри в TestCaseBase.php
Получение списка Касс
try { /** @var \Platformaofd\ClientApi\Model\ResponseKktList $responseKktList */ $responseKktList = $this->apiClient->sendRequest( token: 'access_token', apiEndpoint: \Platformaofd\ClientApi\Model\ApiEndpoint::KKTS, ); } catch (ApiException $exception) { echo $exception->getMessage(); exit(); }
Все методы объекта ответа см. ResponseKktList
Получение Документов кассы
$dateFrom = new DateTimeImmutable('2023-05-06 10:00:00'); $dateTo = new DateTimeImmutable('2023-06-06 10:00:00'); $requestDocuments = (new \Platformaofd\ClientApi\Model\RequestDocuments()) ->setRnm('0000000123456789') ->setDateFrom($dateFrom) ->setDateTo($dateTo); try { /** @var \Platformaofd\ClientApi\Model\ResponseDocuments $responseDocuments */ $responseDocuments = $this->apiClient->sendRequest( token: 'access_token', apiEndpoint: \Platformaofd\ClientApi\Model\ApiEndpoint::ALL_DOCUMENTS, requestObject: $requestDocuments ); } catch (ApiException $exception) { echo $exception->getMessage(); exit(); }
Все методы объекта ответа см. ResponseDocuments
Получение Чеков с тегом 1084
$receiptDate = new DateTimeImmutable('2023-05-06 10:00:00'); $requestReceiptsWithTag1084 = (new \Platformaofd\ClientApi\Model\RequestReceiptsWithTag1084()) ->setReceiptDate($receiptDate) ->setKktRegIds(['0000000000000000', '0000000000000001']) ->setProperties1084(['значение1', 'значение2']); try { /** @var \Platformaofd\ClientApi\Model\ResponseReceiptsWithTag1084 $responseReceiptsWithTag1084 */ $responseReceiptsWithTag1084 = $this->apiClient->sendRequest( token: 'access_token', apiEndpoint: \Platformaofd\ClientApi\Model\ApiEndpoint::WITH_TAG1084, requestObject: $requestReceiptsWithTag1084 ); } catch (ApiException $exception) { echo $exception->getMessage(); exit(); }
Все методы объекта ответа см. ResponseReceiptsWithTag1084
Работа с остальными методами производится аналогичным образом.
Debug
Для отладки можно использовать debug режим с сохранением запросов и ответов. Для этого при создании клиента в
конфигурации следует это определить. В интеграционных тестах опция определяется переменной конфига phpunit.
Запросы сохраняются в файл .http
, его можно использовать в дальнейшем для отладки в IDE, например, в PhpStorm.
По умолчанию режим выключен.
Тесты
composer tests-feature