maksa988/laravel-freekassa
Laravel package for integrating the FreeKassa payment system into your application. Handles payment creation, signature/checksum generation, and notification (webhook) processing, giving you a simple, configurable way to accept FreeKassa payments in Laravel.
composer require maksa988/laravel-freekassa:^4.0 on Laravel 8, or ^3.0 if you are still on Laravel 7 (v4.x explicitly drops/does not target 7.x — see the release note).php artisan vendor:publish --provider="Maksa988\FreeKassa\FreeKassaServiceProvider" (tag is typically config). This creates config/freekassa.php..env, not in the config file, and reference them via env() in the config.config/freekassa.php (keys and endpoint URLs), the package's main service class / facade, and its bundled routes file (the notification callback). Those three files tell you almost everything the package does.MERCHANT_ORDER_ID, (4) verify the amount matches what you expected, (5) mark paid idempotently, (6) return the exact success body FreeKassa expects (plain YES).pending → paid → failed/refunded on your own model. Record the gateway's transaction ID and the raw payload alongside it — this is the single most valuable debugging artifact.YES response and order transition. Fake the outbound redirect URL so CI never hits FreeKassa.env() fallbacks; keep real secrets only in .env / your secret manager. Add a freekassa log channel or a dedicated logger for payloads.^3.0 deliberately and document it. Upgrade to v4 as part of the Laravel 8 bump, not independently.hash_equals() rather than ===. Amount formatting must match exactly between request and callback (decimal separator, no thousands separators) or verification fails.VerifyCsrfToken, and make sure no auth middleware or maintenance-mode gate blocks it. The endpoint must be publicly reachable over HTTPS.YES on an already-processed order is correct and expected.1.0E+3 or 100 instead of 100.00 will be rejected. Format explicitly with number_format($amount, 2, '.', '').How can I help you explore Laravel packages today?