webdophp / webkassa-integration
Webkassa Integration for Laravel
Requires
- php: ^8.4
- ext-soap: *
Requires (Dev)
- orchestra/testbench: ^10.3
README
1. Запуск миграций базы данных
Для применения миграций, которые идут с пакетом, выполните команду:
php artisan migrate
2. Публикация конфигурации и представлений
Для публикации файла конфигурации выполните команду:
php artisan vendor:publish --tag=webkassa-integration
Для публикации представлений (views) выполните команду:
php artisan vendor:publish --tag=webkassa-integration-views
3. Переменные окружения (env)
В файле .env необходимо добавить или настроить следующие переменные:
# Включение логирования ошибок (true/false) WEBKASSA_ERROR_LOG=true # Включение отправки ошибок на почту (true/false) WEBKASSA_ERROR_MAIL=false # Кому отправлять письмо при ошибке (если включена отправка почты) WEBKASSA_MAIL_TO=mail@localhost.lan # Тема письма для ошибок WEBKASSA_MAIL_SUBJECT="WebkassaFetchData Job Failed" # Специальный ключ в Webkassa API-KEY WEBKASSA_API_KEY="" # Данные для авторизации в Webkassa API (логин) WEBKASSA_LOGIN="" # Данные для авторизации в Webkassa API (пароль) WEBKASSA_PASSWORD="" # Базовый URL Webkassa (пример тестового адреса) WEBKASSA_URL="" # API-ключ для получения данных из веб сервиса WEBKASSA_API_KEY_DATA=""
4. Дополнительная информация
Для корректной работы почтовых уведомлений необходимо настроить в Laravel соответствующий драйвер почты (MAIL_MAILER и другие).
Логи ошибок будут писаться, только если в конфиге 'error_log' включено.
Отправка ошибок на почту происходит, только если 'error_mail' включено и указан адрес получателя.
5. Получение данных из Webkassa (потоковая выгрузка)
5.1. Получение данных из Webkassa вручную
Для получения накопленных данных из системы используется следующая очередь:
use webdophp\WebkassaIntegration\Jobs\AuthorizeWebkassa; AuthorizeWebkassa::dispatch();
5.2. Автоматический запуск через планировщик (scheduler)
Для автоматического получения данных из системы рекомендуется настроить вызов AuthorizeWebkassa::dispatch(); через Laravel Scheduler.
Например, в методе schedule() файла app/Console/Kernel.php добавьте:
use webdophp\WebkassaIntegration\Jobs\AuthorizeWebkassa; protected function schedule(Schedule $schedule) { $schedule->call(function () { AuthorizeWebkassa::dispatch(); })->everyFiveMinutes(); // или любое другое расписание }
Требования
Для корректной работы очереди необходимо:
Убедиться, что очереди настроены в Laravel. Например, в .env указано:
QUEUE_CONNECTION=database
Создать таблицу для хранения очередей (если используется database драйвер):
php artisan queue:table php artisan migrateЗапустить обработчик очередей:
php artisan queue:work
6. Вызовы API
1. Проверка доступности сервиса
GET http://localhost/api/webkassa/ping
2. Получить данные
GET http://localhost/api/webkassa/data
3. Подтвердить получение данных
GET http://localhost/api/webkassa/confirm
Обязательные заголовки
Каждый запрос к API должен содержать обязательный заголовок API-KEY.
Пример заголовков:
API-KEY: WEBKASSA_API_KEY_DATA (ваш_ключ_доступа)
Пример с использованием curl:
curl -X GET http://localhost:8000/api/webkassa/ping \
-H "API-KEY: ваш_ключ_доступа"