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

Payment Bundle Laravel Package

kitano/payment-bundle

Symfony bundle that brings payment processing into your app, wrapping multiple payment gateways behind a shared service interface so you can configure providers, create payments, and handle callbacks and status updates with minimal boilerplate.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a Symfony bundle, not a Laravel package. Its extension model is Symfony's kernel/bundle registration and DI container; Laravel's equivalents are service providers, facades, and the Illuminate contracts. Nothing in the repo targets illuminate/*, so the "Laravel/PHP" framing is misleading in practice: the language is portable, the wiring is not. What does transfer is the domain concept — a generic payment-instruction state machine (new → pending → completed/canceled/failed) with provider-specific adapters (SIPS, Fake, custom) behind a PaymentSystemInterface. That abstraction is the actual asset here. The concrete bundle is Symfony 2.x-era scaffolding built around it.

Integration feasibility. Low as a dependency, moderate as a reference. There is no service provider, no publishable config, no facade, no Eloquent binding, and persistence is a Doctrine PaymentInstruction entity. Reaching parity in Laravel means a PaymentServiceProvider that re-registers the orchestration services, an event bridge to Laravel's dispatcher, and a rewrite of the manager/persistence layer against Eloquent. That is re-platforming, not integration, and the surface being re-platformed — capture, callback handling, idempotent completion — is exactly where defects are expensive. A timeboxed spike should be treated as a validation exercise with a negative expected outcome, not a de-risking step toward adoption.

Technical risk. High on three independent axes. Validation: 7 stars, 0 dependents, no downstream consumers to surface defects — the absent dependents are themselves the finding. Runtime: authored in the PHP 5.x / Symfony 2.x era; expect PSR-0 autoloading and deprecated constructs, with PHP 8.x compatibility unproven and likely to require patching before anything runs. Governance: payment orchestration sits in PCI-DSS scope and moves money; adopting it means owning a security-critical component with no upstream, no CVE monitoring, and no escalation path. Risk-owner framing: the failure is not "the code is bad," it's "nobody is accountable for the code in the money path."

Key questions. (1) Last commit date, license, and whether any maintainer responds to issues? (2) Does the bundle ever touch cardholder data, or does it stay outside CDE scope by delegating to the gateway? (3) What exactly does it persist, and can that model be expressed in Eloquent without losing state-transition guarantees? (4) Are the companion gateway bundles (Sips, Fake) maintained to the same or worse standard? (5) Does the flow model idempotency for capture/refund and callback replay? (6) Is there a test suite — specifically a reusable fake-gateway harness — worth porting? (7) Is SIPS/Atos a hard business requirement, or is there a Stripe/Paddle path that makes the whole question moot?

Integration Approach

Stack fit. Poor for a Laravel estate, and poor even as a forward-looking Symfony 3+/4+ choice. It fits only a legacy Symfony 2 application already running it — where the live question is migration off, not integration in. For our stack, the correct classification is "design reference," not "candidate dependency." That should be stated plainly in any ADR so it isn't re-litigated.

Migration path. Do not migrate the package; migrate the pattern. The generic-flow-plus-adapter design is what league/omnipay already provides with maintained drivers, PSR-3/PSR-18 alignment, and an active security posture. For Laravel specifically, laravel/cashier (Stripe/Paddle) or a thin internal PaymentGateway contract bound to the official SDK covers the same ground with modern tooling. If SIPS is a non-negotiable acquirer requirement, wrap its SDK behind a first-party interface rather than resurrecting a stale orchestrator. Port the state machine as a small domain service: explicit states, an append-only audit log, and idempotency keys on every mutating gateway call.

Compatibility. Unverified and probably adverse — Symfony 2.x component constraints, PHP 5.x syntax, PSR-0. Any decision must be gated on the spike actually installing and exercising the Fake gateway end-to-end under our target PHP and Laravel versions. Plan the spike with a kill criterion up front rather than a "we'll see."

Sequencing. If the spike unexpectedly passes: (1) fork to an internal namespace with explicit ownership and a named maintainer; (2) add a Laravel service provider and bindings; (3) bridge the event dispatcher; (4) implement the real gateway behind the Fake, keeping the Fake as the test double for the whole suite; (5) build reconciliation and idempotency before any production traffic. If it fails, which is the expected path: (1) document the reference model extracted from the bundle — states, transitions, event names — into an internal design note; (2) define the internal gateway contract; (3) implement against Omnipay or the acquirer SDK; (4) ship with a fake adapter and a callback-replay test suite as the acceptance gate.

Operational Impact

Maintenance. Fork-and-own is the only viable mode if adopted, and it must be scoped and staffed as such — a permanent line item for an unmaintained, payment-critical component we did not design. With zero dependents and 7 stars, there will be no upstream responses to issues or PRs; every fix is ours. That is the real cost, and it dwarfs the integration effort.

Support. None. No maintainer presence, no release cadence, no security advisories, no upgrade path. For a component in the payment path, the absence of a support relationship is the dominant operational liability and, on its own, sufficient grounds to reject adoption.

Scaling. Not a concern. The orchestration layer is thin and effectively stateless per request; throughput is bounded by the acquirer and by the datastore holding payment state, not by this package. This is the one dimension where the design is not a liability, and it is worth crediting in the assessment — the objection is ownership, not performance.

Failure modes. These belong in front of the risk owner verbatim: partial state after a gateway timeout (authorized but not recorded); missing idempotency keys permitting double capture; dropped or replayed callbacks with no dedupe; divergence between internal state and the acquirer ledger with no reconciliation job; silent exception handling inherited from pre-modern PHP conventions. Each is recoverable with engineering discipline, but none is addressed by an unmaintained library — and our team would be discovering them in production rather than reading them in documentation.

Ramp-up. Negative transfer. A Laravel engineer would have to learn Symfony 2 bundle mechanics — a dialect nobody should invest in — to debug a component they are accountable for. Documentation is sparse and predates current acquirer APIs. Realistic ramp-up is weeks, and the resulting knowledge is not reusable anywhere else in the stack. Compare that to a day or two to onboard an engineer onto a first-party contract backed by an SDK or Omnipay.

Recommendation. Reject as a dependency; cite as a design reference. Score 0.185 with 0 dependents and no maintainer signal is consistent with the evidence: the abstraction is worth borrowing, the artifact is not worth adopting. Capture the state model and event vocabulary in an internal ADR, then build the payment layer on a maintained foundation.

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.
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
equipc/laravel-email-database-log
adedsec/nova-translated-labels