musahmusah/laravel-multipayment-gateways
PaymentSucceeded, PaymentFailed). This integrates seamlessly with existing event-driven architectures (e.g., queues, notifications).guzzlehttp/guzzle). Risk of conflicts is low unless the project uses highly customized payment logic.Route::post('/pay', [PaymentController::class, 'process'])). Custom middleware or route groups may be needed for authentication/authorization.webhook-signature headers). The package abstracts this but relies on the application to configure it correctly.mockshttp).PaymentProcessed::dispatch()).EnsurePaymentIsValid).openssl (for HTTPS/webhook signatures) and json (for API payloads). Most modern PHP stacks include these.composer require musahmusah/laravel-multipayment-gateways.php artisan vendor:publish --provider="MusahMusah\MultiPaymentGateways\MultiPaymentGatewaysServiceProvider"..env with gateway credentials (use Laravel’s env() or vaults like HashiCorp Vault).MultiPaymentGateways\Resources\PaymentResource for consistent API responses.required|numeric) for payment inputs.Http::fake()).laravel-cashier) to prevent service provider collisions.PaymentService facade to abstract gateway calls.Route::post('/paypal/webhook', [WebhookController::class, 'handlePayPal'])).PaymentProcessed::dispatch($payment)).if (stripe->charge()->failed()) { paypal->charge(); }).PaymentAttempted, PaymentFailed).composer why-not musahmusah/laravel-multipayment-gateways to check for dependency conflicts..env or a secrets manager.webhook-signature headers).max_execution_time or use queues).APP_DEBUG=true) for detailed errors.telescope or laravel-debugbar to inspect payment events.PaymentProcessed::dispatch()->onQueue('payments')).Payment::chunk(100, fn($payments) => ...)).Cache::remember('stripe_config', 60, fn() => Stripe::config())).| Failure Scenario | Impact | Mitigation | |-------------------------------------|--------------------------------
How can I help you explore Laravel packages today?