kosov/yii2-fns-check

This package is abandoned and no longer maintained. No replacement package was suggested.

Интеграция PHP клиента API ФНС для работы с онлайн-чеками с фреймворком Yii

Installs: 27

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:yii2-extension

1.1.1 2018-12-22 13:50 UTC

This package is auto-updated.

Last update: 2023-08-22 23:37:09 UTC


README

Расширение для фреймворка Yii2, позволяющее работать с PHP клиентом API ФНС для онлайн-чеков.

Описание доступных методов API находится можно посмотреть в README соответствующей библиотеки.

Установка

Предпочтительный способ устаноки расшрения через composer. Для работы расширения необходимо установить набор пакетов, реализующих стандарт PSR-7, например:

composer require php-http/curl-client guzzlehttp/psr7 php-http/message

Подробнее можно почитать здесь. Далее запустите

composer require --prefer-dist kosov/yii2-fns-check:"~1.0.0"

в директории своего проекта или добавьте

"kosov/yii2-fns-check": "~1.1.0"

в секцию require файла composer.json вашего проекта.

Конфигурация

Для использования расширения сконфигурируйте компонент в конфигурации приложения:

return [
    //....
    'components' => [
        'fnsCheck' => [
            'class' => 'kosov\yii\fnscheck\FnsCheck',
            'username' => '+7XXXXXXXXXX', // Логин пользователя
            'password' => 'XXXXXX', // Пароль пользователя
        ],
    ]
];

Пример использования

/**
 * Страница вывода детальной информации по чеку.
 */
public function actionDetail()
{
    Yii::$app->getResponse()->format = Response::FORMAT_JSON;

    // Данные с QR-кода t=20181109T194700&s=222.58&fn=XXXXXXXXXXXXXXXX&i=XXXXX&fp=XXXXXXXXX&n=1
    $checkData = Yii::$app->fnsCheck->fromQrCode(Yii::$app->getRequest()->getQueryString());
        
    try {
        // Получение детальной информации по реквизитам чека
        $response = Yii::$app->fnsCheck->getCheckDetail(new CheckDetail($checkData));
        
        return Json::decode($response->getContents());
    } catch (FnsCheckApiException $exception) {
        return Json::encode(['error' => $exception->getMessage()]);
    }
}