Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Payum Stripe Laravel Package

flux-se/payum-stripe

flux-se/payum-stripe is a Payum gateway for Stripe that lets Laravel/PHP apps process Stripe payments through a consistent abstraction. It supports card payments, Payment Intents, and webhook handling for common checkout flows.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: The v2.1.0 release clarifies an important point from the prior assessment: this is the Sylius-maintained Sylius/PayumStripe gateway, not an orphaned third-party package. That materially improves the architecture-fit story. It remains a Payum gateway rather than a Laravel-native payment package, so it still fits best where Payum/Symfony payment abstractions already exist (Sylius commerce especially). In a Laravel-first codebase it still introduces Payum's gateway/action/request model alongside Laravel's container — viable, but not first-class. TPM take: unchanged in shape, but the "abandonware" framing should be retired; treat this as a maintained payment abstraction component with an upstream owner.

Integration feasibility: The release adds two capabilities that directly reduce integration uncertainty. First, "Support multiple Stripe SDK versions" (PR #52) means the package is actively tracking Stripe SDK churn rather than pinning to a single version — good for longevity, but it widens the compatibility matrix we must test against. Second, "Re-render Stripe JS Elements form when reusing a still-payable PaymentIntent" (PR #55) is a concrete signal that browser-side Stripe Elements, PaymentIntents, and the reusable-PaymentIntent path are handled, which partially answers the prior open question on SCA/3DS handling. It does not, however, confirm end-to-end 3DS challenge UX ownership, nor refunds, partial captures, subscriptions, multi-currency, or webhook idempotency. Those remain requirements-validation items, not assumptions.

Technical risk: Risk profile improves but is not eliminated. Positives: named upstream organization (Sylius), corporate branding in the README (Flux and Harman logos), a new external contributor (@GSadee), and a patch-to-minor cadence from v2.0.18 to v2.1.0. This is evidence of active stewardship and commercial interest, which weakens — but does not invalidate — the earlier bus-factor and no-commercial-support concerns; branding is not a support contract. Remaining risks: no published LTS or support policy, no evidence of a security disclosure process, the multi-SDK support feature implies multiple supported dependency permutations that we must test, and the PaymentIntent re-render change touches the browser payment flow, which is exactly where regressions are most user-visible. v2.1.0 is a minor release with no deprecations or breaking changes listed, so upgrade risk is low.

Key questions: Which Stripe SDK versions does "multiple SDK versions" actually span, and which one do we pin? Does the PaymentIntent reuse path handle expired/canceled intents and amount changes, not just still-payable ones? Is SCA/3DS handled end-to-end including challenge return and failure recovery? Are webhooks signed, idempotent, and replay-safe? What Payum, PHP, Symfony, and Laravel versions are compatible? Is there test coverage for declines, refunds, partial captures, and currency edge cases? Who is the named maintainer, and is there any commercial support or SLA behind the Flux/Harman relationship? Does it meet PCI scope-reduction expectations by keeping card data off our servers?

Integration Approach

Stack fit: Unchanged in principle. Sylius/Symfony with Payum present = strong fit as a gateway adapter, and now with a maintenance argument. Laravel-first = moderate to weak; Laravel Cashier or the official Stripe SDK remains lower-risk unless Payum abstraction is an explicit architectural requirement. The Sylius provenance raises a practical question worth asking early: if we adopt it in Laravel, we are consuming a package whose primary tested path is Sylius, so our integration is off the main highway.

Migration path: Still isolate behind an internal PaymentGateway interface. The v2.1.0 frontend change reinforces this: the Stripe Elements/PaymentIntent re-render logic is UI-coupled, so keep it behind our own checkout adapter rather than letting Payum/Stripe JS concepts leak into application code. Sandbox proof of concept should explicitly cover PaymentIntent reuse (pay, abandon, return, retry with the same intent) since that is the flow this release touched.

Compatibility: Upgrade to v2.1.0 is low-friction — minor version, additive changes, no listed deprecations. The new variable is the multi-SDK support: we must decide whether to stay on our current Stripe SDK version or move to the newest supported one, then run contract tests against that specific combination. Validate PHP, Payum core, Symfony components, Stripe SDK/API version, and Laravel container compatibility. Dependency audit plus a short upgrade spike remains the gate.

Sequencing: 1) Confirm business requirements and compliance constraints. 2) Pin a Stripe SDK version and record the supported matrix. 3) Time-boxed sandbox spike with real Stripe test keys, including PaymentIntent reuse and 3DS challenge paths. 4) Review webhook security, idempotency, and reconciliation design. 5) Implement behind the internal abstraction with contract tests. 6) Add observability and dead-letter handling. 7) Canary a low-risk payment path. 8) Decide maintain-vs-fork posture with the new upstream-stewardship evidence in hand.

Operational Impact

Maintenance: Downgraded from "assume vendor-style stewardship of an orphan" to "track an actively maintained upstream with corporate backing." Still budget recurring work: Stripe SDK/API evolution is now explicitly in scope for the package (PR #52), which is good, but it means version drift is a live variable and we should pin and test deliberately. Keep a fork-ready posture as insurance, not as the default plan.

Support: The picture improved — named organization, new contributor, sponsor logos — but there is still no evidence of a formal support contract or SLA. Identify an internal owner, retain Payum/Stripe expertise, and clarify in writing what the Flux/Harman relationship actually provides (funding? maintenance commitment? escalation?). Consider upstream contribution rather than a private fork as the first lever.

Scaling: Unchanged. Throughput is bounded by Stripe and our webhook consumer design, not by this package. Queue webhooks, use idempotency keys, retry with backoff, and avoid synchronous payment-state mutation in request paths.

Failure modes: Prior list stands (Stripe outages, webhook delivery failures, duplicate charges on retry, stale state, refund mismatches, currency/rounding, silent breakage on upgrades). Two additions from this release: (a) Stripe SDK version skew — a supported-but-untested SDK combination behaving differently in production; (b) checkout regressions from the PaymentIntent/Elements re-render path, which are customer-facing and easy to miss in API-only tests. Add browser-level checkout tests to the regression suite and alert on payment-intent abandonment spikes after deploy.

Ramp-up: Slightly improved, because upstream activity means better odds of community answers and fixes. A Payum-familiar team onboards in days; a Laravel-only team should still plan one to two sprints for a safe proof of concept plus hardening. Ramp-up cost is dominated by Payum's abstraction model, the Stripe payment lifecycle including PaymentIntent reuse, webhook security, and reconciliation operations — none of which this release changes.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator