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

Stripe Bundle Laravel Package

scribe/stripe-bundle

A Symfony bundle that streamlines Stripe integration with preconfigured services, dependency injection and thin wrappers around the Stripe PHP SDK, so you can add payments, customers, subscriptions and webhooks to your app with minimal boilerplate.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Framing the real decision: adapter vs. native service binding — not "which Stripe package." The valuable PM outcome here isn't whether to install scribe/stripe-bundle; it's the standard that any thin integration wrapper must clear before it touches the money path. This package makes the bar concrete and reusable: what does it do beyond new \Stripe\StripeClient($secret) plus config loading? If the answer is "container wiring," that's a service provider, not a dependency.
  • Framework-fit call, stated plainly. This is a Symfony bundle, not a Laravel package. It ships a Symfony Bundle subclass and a DI Extension; Laravel has no service provider, facade, or config publish tag here. So the decision this informs for a Laravel shop is really: "do we adopt a foreign-framework adapter, fork its service definition, or write a ~40-line provider against stripe/stripe-php?" The last option wins on every axis.
  • Build vs. buy for glue we can write in an afternoon. Strip out the framework mismatch and the bundle's functional surface is: bind a configured StripeClient as a singleton, read keys from env/config, optionally handle webhook signatures. In Laravel terms that's a service provider plus a config/services.php entry. Buying a zero-star dependency for that is a low-value trade — and it imports a maintenance obligation we'd otherwise not have.
  • Payments-path risk posture. Payment code touches PCI scope, secret keys, and webhook verification. A dependency here should clear a higher bar than a UI utility: declared license, active maintenance, a security advisory path, and evidence in the source that keys and card data aren't logged. This package fails that bar today (undefined NOASSERTION license, 0 stars, 0 dependents), which is itself a governance signal: it forces us to document whether the revenue path accepts unvetted dependencies. That policy decision is more valuable than the package review.
  • Roadmap scoping for a payments abstraction layer. If the roadmap points toward multiple processors (Stripe + Adyen + PayPal) or a shared internal PaymentsClient interface, a single-vendor Symfony bundle is the wrong foundation. This assessment supports deferring that abstraction work — and definitely not adopting a shortcut that becomes a migration later. If billing/subscription abstractions are the actual need, laravel/cashier should be evaluated on its own merits as an idiomatic, maintained, licensed alternative.
  • Use cases it could legitimately serve: a Symfony-based internal back-office tool or admin console where Stripe is peripheral and a single charge or subscription lookup is needed for a prototype/MVP. Explicitly not a production checkout on the primary revenue path — and not a Laravel app at all without forking it.

When to Consider This Package

Consider it only if all of the following hold:

  • The consuming service is on Symfony (version support unverified — no release matrix is stated). On Laravel this is a non-starter as-is: it will not autowire, and making it work means either pulling Symfony's DI component into a Laravel app (a second container — unacceptable) or forking the bundle down to its service definition, at which point we've written our own code and are merely citing it as prior art.
  • Stripe usage is shallow and peripheral — a handful of one-shot API calls, no complex idempotency/retry logic, no revenue-critical webhook handling. Read "basic functionality" literally.
  • We can absorb the maintenance risk: 0 stars, 0 dependents, no verified license. We would be the first and likely only consumer — assume we are effectively forking and owning it.
  • Someone has read the source and confirmed what it does with API keys, request logging, and error handling. A wrapper that logs request payloads can leak card data or keys.
  • Legal has signed off on licensing. NOASSERTION means GitHub could not identify an SPDX-recognized license. For a commercially distributed product that is a blocking finding, not a footnote.

Look elsewhere — specifically at the official stripe/stripe-php SDK plus a small in-house Laravel service provider — when any of these are true:

  • We are on Laravel, or framework-agnostic microservices. (This is the default case for us.)
  • Payments are revenue-critical, need idempotency keys, webhook signature verification, SCA/3DS, or multi-currency.
  • We need vendor support, security advisories, or a CVE response path — none of which an unstarred bundle provides.
  • Procurement or legal requires a declared OSI license.
  • The bundle pins or caps the Stripe SDK version — a wrapper that blocks an SDK upgrade needed for an API deprecation or security patch is disqualified outright.
  • We want a single internal PaymentsClient abstraction to preserve processor optionality.

Realistic recommendation in most cases: do not adopt; reimplement the binding. The dependency adds supply-chain, license, and maintenance risk to buy roughly a day of configuration work — against a maintained SDK we'd keep underneath anyway.

How to Pitch It (Stakeholders)

Executive summary. A community Symfony bundle that wraps Stripe's PHP SDK as an injectable service. Three things to know: (1) it is a convenience layer, not a payments platform — it configures and injects the official Stripe client, and Stripe still does all the work; (2) it is a framework mismatch for our Laravel stack, so its wiring does not transfer; and (3) it carries no adoption signals — zero stars, zero dependent projects, no declared license. Recommendation: do not adopt for production revenue paths. It saves on the order of a day of configuration, and the risk-to-value ratio is unfavorable for code that handles API keys and customer payment data. This is a zero-cost decision: it is greenfield, so declining costs us nothing.

For engineering. The package's entire functional surface is reproducible with composer require stripe/stripe-php, one Laravel service provider binding a singleton StripeClient from config/services.php, and a config entry — roughly 20–40 lines. Writing it ourselves gives us control over key handling, log redaction, retry/idempotency behavior, and test seams, and keeps us on the officially maintained SDK for security patches. It also avoids either a hard Symfony DI coupling or a fork we'd have to own. If a team wants to trial it in a prototype, that's reasonable — but treat it as a fork we now own and budget an hour of source review first, focused on secret handling and what gets written to logs. Flag the undefined license to legal before it reaches any distributed artifact, and pin an explicit Stripe API version in config as a reviewed, deliberate value rather than whatever the lockfile resolves.

Ask. Approve ~1 day of engineering to implement the binding in-house for any Laravel service needing Stripe, and record the decision as "reference only, license unclear" so it doesn't resurface. Deprioritize evaluation of third-party payment wrappers generally; standardize on the official Stripe SDK plus a thin first-party adapter. If the real need turns out to be billing/subscription abstractions, evaluate laravel/cashier on its own merits. Revisit multi-processor abstraction only when the roadmap actually demands it — and then build a proper internal interface, not this bundle.

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.
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr
laravel2580/idehelpers
delatbabel/viewpages
anavel/gettext
muhamadrezaar/highcharts
delatbabel/keylists
frankkessler/salesforce-laravel-oauth2-rest
anavel/foundation
wdmtech/enviricons
eii/laravel-captcha
muka/shape-reader
tdt/json