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

Laravel Payment Laravel Package

overtrue/laravel-payment

A Laravel payment integration package that provides a unified API for Alipay and WeChat Pay. It simplifies configuring credentials, creating payments, handling callbacks, and supporting common scenarios like web, app, and QR payments—ideal for adding Chinese payment gateways to Laravel apps.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Multi-gateway abstraction as a product lever. One facade plus config-driven gateway names means we can add a second or third PSP (regional wallets, local card acquirers, failover acquirer) without new payment code paths — it directly de-risks roadmap items like geographic expansion, local payment methods, and acquirer redundancy.
  • Build vs buy on payment plumbing. This is a thin Laravel glue layer over League Omnipay. Adopting it means checkout integration becomes configuration plus driver selection instead of bespoke request-signing code. Keep PSP-specific business logic — refund policy, reconciliation, dunning, retry rules — in our domain layer so the abstraction stays swappable.
  • Platform-currency forcing function. 4.0.0's floor of PHP ^8.3 and Laravel ^13.30 makes this package a dependency of our framework-upgrade epic, not a standalone line item. It should be scheduled with that workstream, and its release cadence should be an input to our support-matrix commitments.
  • Low-churn upgrade story. The release explicitly preserves gateway names, payment alias, facade, option argument expansion, default precedence, gateway caching, and the factory implementation. That means the 4.0.0 upgrade is a maintenance task we can slot into a sprint, not a feature project — a meaningful scheduling and cost input.
  • Where PM must add investment. The package's own suite is 17 tests / 48 assertions against a dummy gateway with no live payments: that is wiring coverage, not money-movement coverage. Budget our own sandbox end-to-end tests, reconciliation checks, and a driver-compatibility gate before any gateway is enabled in production.

When to Consider This Package

Consider it when:

  • The app is on PHP 8.3+ and Laravel 13.30+, and product needs more than one PSP behind a single internal interface.
  • The team already standardizes (or will standardize) on Omnipay drivers and wants Laravel-native config, facade, DI, deferred providers, and gateway caching.
  • You need fast coverage of regional gateways and aliases, and you value a stable public surface — 4.0.0 keeps the developer-facing API intact, so integration knowledge transfers across the upgrade.
  • You can absorb an upgrade cadence that tracks Laravel majors rather than spanning them.

Look elsewhere or defer when:

  • You are still on PHP <8.3 or Laravel ≤12 — 4.0.0 is simply unavailable; decide between pinning 3.x with a dated migration plan and not adopting.
  • Your gateway is not covered by a maintained Omnipay driver. 4.0.0 pins Omnipay ^3.2.1, Common ^3.5.1 and Guzzle 7 adapter ^1.1, and separately installed drivers must be checked; an unmaintained driver is the real risk here, not this package.
  • Payments are core revenue under strict PCI/audit obligations requiring vendor SLAs, live-transaction test evidence, and formal security review — this is a small open-source wrapper, so tokenization/hosted fields, key management, audit trails and pen testing remain ours to own.
  • You need subscriptions, invoicing, tax, dunning or reconciliation out of the box — that is a payments platform decision, not an abstraction-layer decision.
  • You require long-term support across multiple Laravel majors, or single-maintainer bus-factor risk is unacceptable for a tier-1 dependency. Mitigate with pinned versions and a documented fork plan.

How to Pitch It (Stakeholders)

For executives: This is a small, free Laravel adapter that lets us put multiple payment providers behind one internal interface instead of writing provider-specific code each time we add a market or a payment method. Release 4.0.0 modernizes it — PHP 8.3+, Laravel 13.30+, current Omnipay and Guzzle — and deliberately leaves the developer-facing interface unchanged, so our application code is not rewritten. The cost is an upgrade task bundled into the platform upgrade we are already planning, not a new project. The trade-offs are honest ones: it is community-maintained, its tests use a dummy gateway with no live payments, and it only supports the newest Laravel. We therefore hold it to our standard bar — our own sandbox end-to-end tests, a reviewed driver-compatibility list, and pinned versions — before any real gateway is enabled. Decision requested: approve adoption/upgrade as part of the Laravel/PHP platform workstream with that validation gate, or defer if we need multi-major Laravel support and vendor SLAs.

For engineering: 4.0.0 breaks on platform only — PHP ^8.3, Laravel ^13.30, Guzzle 7 adapter ^1.1, Omnipay ^3.2.1, Omnipay Common ^3.5.1; Laravel 12 and earlier are unsupported. The public surface is explicitly preserved: gateway names, payment alias, facade, option argument expansion, default precedence, gateway caching, and an unchanged factory. Internal changes are Laravel's deferred-provider contract and explicitly nullable gateway names. Migration steps: bump constraints; audit every installed gateway driver against the pinned Omnipay versions; update call sites where a single array argument now needs an outer array; run sandbox end-to-end tests per gateway. Known noise: oldest allowed transitive dependencies emit upstream deprecations on PHP 8.4+ and these are not suppressed — either move to latest dependencies or filter in CI knowingly. Coverage reality: 17 tests / 48 assertions (six original unit tests plus Laravel 13 integration, dummy gateway, no live payments) — treat as wiring coverage and own the payment-path tests. CI is green on PHP 8.3 with lowest secure dependencies and on 8.3/8.4/8.5 with latest, including strict validation, lint and default Composer audit. See PR #18 and the README upgrade guide.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console