payum/stripe
Payum Stripe extension for integrating Stripe payments via the Payum payment processing library. Provides gateway support and related actions; see Payum docs for setup and usage. MIT-licensed.
Pros:
capture, authorize), reducing business logic pollution.Cons:
HttpFoundation) if not configured carefully.payum/payum-bridge (v1.0+) provides Laravel integration but may need updates for PHP 8.x/Stripe v2.GatewayFactory and Storage can be bound to Laravel’s container, but type hints may require adjustments.t parameter) may need custom handling.Stripe_Charge), which is deprecated. Migration to PaymentIntents (v2) requires rewriting core logic.payment_intent.succeeded vs. charge.succeeded).| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Stripe API v1 Deprecation | Critical | Audit all Stripe API calls; plan for hybrid approach (Payum for workflows + Stripe SDK for v2 features). |
| PHP 8.x Incompatibility | High | Test with payum/payum-bridge; patch type hints (e.g., return_type declarations). |
| Webhook Mismatch | High | Implement custom webhook handler to bridge Payum events to Stripe v2 payloads. |
| Symfony Dependencies | Medium | Use Laravel’s composer.json replace or ignore to exclude unused Symfony components. |
| Testing Gaps | Medium | Develop mock Stripe responses for Payum actions; integrate with Laravel’s testing tools. |
| Long-Term Maintenance | High | Fork the repo to backport Stripe v2 support or migrate to a maintained alternative. |
payum/payum-bridge compatibility with Horizon)?mocks or pestphp?spatie/laravel-stripe or direct Stripe SDK usage?GatewayFactory and Storage (e.g., database or array) in Laravel’s container:
$this->app->bind('payum.gateway', function ($app) {
return Payum::createGateway([
'factory_name' => 'stripe',
'config' => [
'api_key' => config('services.stripe.key'),
],
]);
});
Route::post('/stripe/webhook', [StripeWebhookController::class, 'handle'])
->middleware('stripe.signature');
event(new PayumActionEvent($gateway, 'post.capture', $details));
dispatch(new ProcessPayumAction($gateway, $action, $details));
// Stripe SDK for v2
$intent = \Stripe\PaymentIntent::create([...]);
// Payum for idempotency/storage
$gateway->execute($intent->id);
capture → Stripe_Charge).Stripe_Charge) and plan for v2 migration.spatie/laravel-stripe or direct SDK usage.return_type declarations) or use payum/payum-bridge updates.GatewayFactory and Storage in Laravel.How can I help you explore Laravel packages today?