e2k/payment-bundle
Symfony bundle for payment gateway abstraction with native CentralBill support via a pluggable interface. Configure gateways through YAML and environment variables, then integrate payments quickly.
Architecture fit
payment-bundle is a Laravel package wrapping two payment gateways (Paystack, CentralBill) behind a shared abstraction. It fits the framework's idiomatic patterns — service provider registration, config publishing, container-bound gateway clients — so adoption requires no architectural change to the host application. The 1.1.5 change lands in the gateway adapter layer, which is the correct place for it: amount normalization belongs at the boundary, not in consuming application code.
Integration feasibility
This is a patch release (1.1.4 → 1.1.5) with a single PR (#17) addressing amount handling parity between the two gateways. Integration effort is a composer update plus verification. The real cost is not installing it — it is confirming that the normalization direction and rounding behavior match what the application already assumes when it persists and displays amounts.
Technical risk Amount handling is a high-blast-radius concern despite being a small diff:
amount column the app writes itself.: e…), so the actual scope of the PR is unknown from the supplied data. Semver patch status is not evidence of behavioral compatibility here.Key questions
Stack fit
Standard Laravel/PHP dependency — Composer, PHP version constraints per the package's composer.json, no new infrastructure. Fits an existing Laravel payment integration with no changes to routing, queues, or persistence layers.
Migration path
Pin explicitly to 1.1.5 rather than floating a ^1.1 constraint during the verification window, so a subsequent patch cannot change amount semantics underneath you. Run the upgrade in staging first with sandbox credentials for both gateways.
Compatibility Semver says non-breaking at the API level. Treat it as potentially breaking at the transaction level until proven otherwise: if 1.1.4 sent an amount in one unit and 1.1.5 sends it in another, no code fails to compile and no exception is thrown — the charge is simply wrong. Any application that computes or stores amounts independently of the package must be checked for double-conversion.
Sequencing
Maintenance Low ongoing cost — a single small PR. The durable maintenance item is a unit-conversion test suite; without it, this class of bug recurs silently on the next gateway addition.
Support Expect a possible short spike in tickets describing charges that are 100x too high or too low, or refunds that fail or misstate value. Brief first-line support on currency subunits so they can triage these quickly rather than escalate blind.
Scaling No impact. Pure application logic; no additional network calls, storage, or infrastructure.
Failure modes
Ramp-up Minimal for any developer already working in Laravel. The non-obvious knowledge is domain-specific — which gateway expects which unit and for which currency — and should be captured in the package README or an internal note rather than left in PR #17.
How can I help you explore Laravel packages today?