shapin/stripe
A lightweight Laravel integration for Stripe that wraps the official Stripe PHP SDK with a simple, expressive API. It helps streamline common billing tasks like customers, payments, subscriptions, and webhook handling in PHP applications.
stripe/stripe-php, (b) laravel/cashier for subscription ergonomics, (c) a first-party internal wrapper, or (d) a fork like this — with shapin/stripe representing option (d). PM framing: choose the option with the lowest total cost of ownership across the revenue surface, not the lowest integration effort.Consider only if all of these hold:
stripe/stripe-php rather than an independent reimplementation of Stripe's REST API (the latter is a hard stop).Look elsewhere — decisively — if:
stripe/stripe-php directly, or laravel/cashier for subscriptions, portal, and webhook plumbing. Estimated effort is comparable, with far lower long-term risk.PM decision rule: the burden of proof sits with the third-party package. On the evidence available — 4 stars, 0 dependents, MIT, self-described as "a Stripe PHP SDK" — it does not clear the bar for greenfield adoption. It clears it only as a controlled internal fork.
To executives — one line: this is a thinly adopted wrapper around Stripe's own SDK, with no capability beyond it; our recommendation is to standardize on the official Stripe SDK (plus laravel/cashier where subscriptions matter) and not adopt this package.
The argument: Stripe integration is revenue-critical, and its failure mode is that we cannot take money. This package has 4 GitHub stars, zero dependents, and no visible maintenance governance. Every dollar of engineering effort it saves at integration is repaid with interest in security patching, upgrade blocking, and incident response that Stripe would otherwise absorb on our behalf. It also carries supply-chain risk sitting directly on the payment surface — API keys, card data, webhook signatures. Sticking to the official SDK keeps us on Stripe's supported upgrade path, keeps us inside our PCI scope assumptions, and keeps hiring and onboarding simple because every Laravel engineer already knows that SDK. Ask: approve the official SDK as the standard, and if this package is already in the codebase, approve a scoped migration budget behind a payments-service interface.
To engineering: treat this package as a fork, not a library — there is no ecosystem, no CVE channel, and no guarantee it tracks Stripe API versions. Do not adopt it fresh. Pin stripe/stripe-php, put it behind a thin first-party PaymentGateway interface so HTTP transport, persistence, and vendor choices stay swappable, and route all state transitions through verified webhooks rather than client-side confirmation. If it's already in production, migration is near-mechanical if it's a thin wrapper (swap calls plus a small adapter) and a genuine rework if it diverged — so the first task is a provenance audit and a diff against upstream before we size the migration. Either way, the sequencing is: audit → sandbox proof of concept → security review of key handling, logging, and webhook verification → adopt only if it measurably beats the official SDK on some concrete axis → roll out behind the abstraction.
What we give up by saying no: nothing on the product roadmap. There is no user-facing feature this package enables that the official SDK does not. The only thing forgone is whatever narrow internal convention motivated the fork in the first place — which is worth confirming with the maintainers before closing the door.
How can I help you explore Laravel packages today?