michael-rubel/laravel-stripe-integration
A Laravel package that simplifies Stripe integration by providing configuration and convenient wrappers for common Stripe API workflows, helping you add payments, subscriptions, and webhook handling to your application with less boilerplate.
Architecture fit
stripe/stripe-php: config publishing, container bindings for the Stripe client, and pre-built entry points for common flows (charges/PaymentIntents, customers, subscriptions, webhook handling). It is a boilerplate reducer, not a payment abstraction — there is no gateway-neutral interface, no reconciliation engine, no dunning logic.StripeService + webhook controller if we only need one-off PaymentIntents. A TPM should treat "adopt this package" as one of three options, not the default.Integration feasibility
composer require, publish config, populate STRIPE_KEY / STRIPE_SECRET / webhook secret in the secret store, register the webhook route. A mid-level Laravel engineer can spike this in under a day.php, laravel/framework, and stripe/stripe-php version ranges against our runtime. The 2.0.1 notes tell us nothing about the runtime stripe-php constraint — the only dependency touched is composer/composer, which is the maintainer's own dev tooling and is not shipped to consumers. Do not read that Dependabot PR as a runtime security patch.Technical risk
app/ is cheap, which materially caps the downside.Key questions
stripe/stripe-php major and which Stripe API version does 2.0.1 pin, and what is our exposure window? (The release notes do not answer this, which is itself informative.)Stack fit
config/ publishing, env-driven secrets, and queue workers available. If we are on a newer Laravel major or PHP 8.3+, expect to patch the service provider's type hints and composer constraints.Migration path
app/Services/Billing/ with MIT attribution, and own it. This eliminates the abandoned-dependency risk entirely while preserving the time savings. Lift from 2.0.1, not 2.0.0 — pin our reference copy to the release that contains the payment-method fix and diff 2.0.0→2.0.1 so we understand the corrected request shape rather than unknowingly reintroducing the defect.composer.json via a VCS repository, enable Dependabot on runtime dependencies, and add it to the owned-dependency register. Acceptable only with a named maintainer and a scheduled stripe-php upgrade cadence.Compatibility
stripe-php matrix and our CI matrix overlap on day one. Confirm 2.0.1 did not shift any of those constraints beyond the dev-tooling bump.Sequencing
BillingGateway interface so a future swap (Cashier, multi-PSP) does not touch controllers.Maintenance
stripe-php major review, quarterly Stripe API version review, and an owner in the on-call rotation for the billing path. 2.0.1 does not reduce this line item.Support
Scaling
Failure modes
stripe-php or its HTTP client with no upstream patch lane. Mitigate by owning the fork or the in-house copy, and by pointing our own Dependabot at the fork.invoice.paid before customer.subscription.updated) producing inconsistent local state — reconcile against the Stripe API on a schedule rather than trusting event order.Ramp-up
stripe-php, how to replay a webhook, how to reconcile a day's transactions, who to page.TPM recommendation (unchanged by 2.0.1): do not adopt as a live upstream dependency. One patch release — a dev-tooling bump plus a payment-path bug fix — is not evidence of a sustainable maintenance posture; if anything, the existence of that bug fix reinforces the field-testing concern. Use the package as a reference implementation lifted from 2.0.1, or fork-and-own with a named maintainer, and only if the spike shows it saves at least an engineer-week. If the roadmap is subscription-led, evaluate Laravel Cashier first; the abandoned-dependency risk is not worth a boilerplate saving on a payment path.
How can I help you explore Laravel packages today?