vlsv/platformaofd-api-client

Клиент для работы с PlatformaOFD Client API

1.0.2 2024-10-29 12:28 UTC

This package is auto-updated.

Last update: 2024-10-29 12:29:02 UTC


README

workflow

Клиент для работы с 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

Источники