This is my package laravel-subscription-guard
fzengin19/laravel-subscription-guard is a Laravel package for this is my package laravel-subscription-guard.
It currently has 0 GitHub stars and 1 downloads on Packagist (latest version v1.3.0).
Install it with composer require fzengin19/laravel-subscription-guard.
Discover more Laravel packages by fzengin19
or browse all Laravel packages to compare alternatives.
Last updated
Laravel Subscription Guard is a Laravel package for subscription billing, payment-provider integration, and license lifecycle management.
It combines:
The current package surface includes:
The package supports two billing ownership models:
iyzico: provider-managed recurring billing, with local state updated from webhook and callback resultspaytr: package-managed recurring billing, with the package running renewal and retry orchestrationSee Providers for the current provider overview.
Provider-specific integration docs:
Install the package:
composer require fzengin19/laravel-subscription-guard
php artisan vendor:publish --tag="laravel-subscription-guard-config"
php artisan vendor:publish --tag="laravel-subscription-guard-migrations"
php artisan migrate
Then continue with:
The package currently exposes these core operational commands:
php artisan subguard:process-renewals
php artisan subguard:process-dunning
php artisan subguard:suspend-overdue
php artisan subguard:process-plan-changes
php artisan subguard:process-metered-billing
php artisan subguard:simulate-webhook paytr payment.success
php artisan subguard:simulate-webhook iyzico payment.success
php artisan subguard:sync-license-revocations
php artisan subguard:sync-license-heartbeats
php artisan subguard:generate-license 1 1
php artisan subguard:check-license <signed-license-key>
Route and command surface summary lives in API.
Default queues are isolated by concern:
subguard-billingsubguard-webhookssubguard-notificationsQueue names are configurable under subscription-guard.queue.
For a safe local first-success path, start with install + migrate and then use simulated webhook intake:
php artisan subguard:simulate-webhook paytr payment.success
php artisan subguard:simulate-webhook iyzico payment.success
That validates the local webhook intake and finalization path without requiring real provider credentials.
composer test
composer test-live
composer analyse
composer format -- --test
composer test runs the deterministic suite.composer test-live runs the isolated iyzico sandbox suite under tests/Live.Internal planning docs live under docs/plans/.
Bank installment flags and application-level recurring collection are not the same thing.
If you need true multi-period manual collection, model it as your own scheduled billing flow instead of assuming provider installment settings create that behavior automatically.
Do not put real credentials into repository docs or example files.
MIT