puntodev/paypal-fake
A lightweight PayPal fake for Laravel testing. Swap the real PayPal client for a fake that returns stubbed API responses, so you can exercise checkout, payment, and webhook flows in your test suite without network calls or sandbox credentials.
puntodev/paypal-fake lets teams exercise payment, subscription, refund, and webhook paths in CI without hitting PayPal sandbox endpoints or managing sandbox credentials/secrets. This directly de-risks "build vs. stub it ourselves" decisions: adopting a maintained fake removes an internal test-utility codebase from the roadmap.puntodev/paypal ^7.0. Any roadmap item that moves the platform to PHP 8.5 must sequence the PayPal SDK upgrade and this test-double upgrade together; conversely, a decision to stay on PHP 8.4 freezes this package at 1.0.2 (still supported, but no further fixes).Adopt when:
puntodev/paypal and the team wants payment-related tests (create order, capture, refund, webhook handling) to run in unit/integration suites without network calls.puntodev/paypal ^7.0 — the only configuration 2.0.0 supports.Look elsewhere / stay put when:
puntodev/paypal 6.x or below — remain on the 1.0.x line and plan the platform upgrade first. Do not attempt a partial upgrade.To executives: This is a small, test-only library that lets our engineers test PayPal checkout without touching PayPal's servers. The new 2.0.0 release adds no product features — it simply requires PHP 8.5 and the next major version of our PayPal SDK. Practically, it means the cost of the payment-integration upgrade is now coupled to our PHP 8.5 migration: we get better payment test reliability for free when we upgrade the platform, and nothing breaks if we don't. There is no direct revenue impact, but it lowers the risk of shipping a payment bug and keeps PayPal secrets out of CI. Risk to flag: single maintainer and a strict version floor, so we should not make it the sole safety net for payments.
To engineering: 2.0.0 is a breaking release driven entirely by dependency floors — PHP 8.5+ and puntodev/paypal ^7.0. Everything else in the release is CI/Dependabot housekeeping and release-note labelling. Treat it as a lockstep upgrade: bump puntodev/paypal to ^7.0, confirm runtime is PHP 8.5, then bump this package and re-run the payment test suite. If we're not ready for PHP 8.5, pin to 1.0.2 and add a tracking ticket; there is no functional gap in staying behind, only a freeze on fixes. Because it is a fake, failures surface as test failures, not production incidents — but that also means the fake's fidelity is our only early warning, so budget a short verification pass against real PayPal sandbox when the SDK major changes.
How can I help you explore Laravel packages today?