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

Kj Payment Stripe Bundle Laravel Package

mediaarea/kj-payment-stripe-bundle

Stripe payment bundle for the KJ PHP framework from mediaarea. Adds Stripe checkout and payment processing to KJ applications so you can accept card payments with minimal setup. A small, low-adoption package, so review the source and documentation carefully before relying on it in production.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

The package is a Symfony bundle, not a Laravel package. It ships a Bundle subclass, DI extension, and container service definitions, and it is explicitly designed as a driver for a sibling abstraction (KJPaymentBundle) rather than a standalone Stripe integration. That makes adoption a two-package commitment: you inherit a payment-gateway abstraction layer plus one concrete gateway implementation, and the abstraction is the part with the lock-in risk.

For a Laravel codebase this is a category mismatch — Laravel uses Symfony components but has no bundle registration, compiler passes, or bundles.php. Making it work would mean hand-porting service definitions into a service provider. MediaArea's core competency is media metadata tooling (MediaInfo); payments appear to be incidental to an internal application rather than a supported product surface.

Integration feasibility

Low. Signal quality is the dominant issue: 0 stars, 0 dependents, score 0. There is no evidence of third-party production use, no fork ecosystem, and therefore no informal support network. Feasibility is further gated on:

  • Stripe SDK/API vintage — bundles of this era typically pin stripe/stripe-php v3–v7 and predate PaymentIntents, SCA/3DS2, and mandatory webhook signature verification.
  • Symfony generation — the bundle almost certainly targets Symfony 3/4 container semantics (public services, getContainerExtension()), which were removed or deprecated in Symfony 5.3+/6.x.
  • PHP constraint — likely ^5.6 || ^7.0, conflicting with modern runtimes.

Technical risk

Risk Severity Notes
Abandonware High Single org, non-core domain, no release cadence
Payment correctness High SCA/3DS2, idempotency keys, partial refunds, webhook verification likely absent
Transitively unpatched deps High Pinned Stripe SDK / Guzzle will drift out of security support
Container incompatibility Medium Blocks Symfony/PHP upgrades on any host app
Bus-factor High No named, responsive maintainer

Payments carry asymmetric blast radius: an unmaintained integration is a PCI-adjacent liability, not a convenience library.

Key questions

  1. Does it implement PaymentIntents/SCA, or only the legacy Charges API?
  2. Are webhook signatures verified, and are idempotency keys supported on capture/refund?
  3. What are the exact composer.json constraints for PHP, Symfony, and stripe/stripe-php?
  4. Is KJPaymentBundle itself maintained, and what is its release history?
  5. Is there any test suite — particularly anything exercising failure/retry paths?
  6. What is the license, and is there a security disclosure channel?

Integration Approach

Stack fit

  • If we are on Laravel: do not adopt. Use stripe/stripe-php directly behind our own PaymentGateway interface, or Laravel Cashier if subscription billing is in scope. Both are maintained, documented, and idiomatic.
  • If we are on Symfony: technically registrable, but only viable as a forked, vendored bundle where we own the Stripe SDK upgrade path. Even then, adopting the KJ abstraction for one gateway is unjustified coupling.
  • If we inherited a system already using it: treat it as a containment and exit problem, not an adoption problem.

Migration path

  1. Freeze — pin the current commit, composer audit, and run static analysis (PHPStan/Psalm) against the current runtime.
  2. Wrap — introduce a first-party PaymentGateway port and an adapter that delegates to the bundle. Every call site moves to the port; the bundle becomes an implementation detail.
  3. Spike — reimplement the adapter on stripe/stripe-php v15+ in a sandbox account, covering the actual operations in use (auth, capture, refund, webhook).
  4. Dual-run — Stripe test-mode parity checks across both adapters before any cutover.
  5. Switch — swap the adapter binding; delete the bundle and, if nothing else consumes it, KJPaymentBundle.

Compatibility

Expect hard blockers on Symfony ≥5.3 and PHP ≥8.0 due to container semantics and syntax. Stripe SDK major-version conflicts are likely to be unresolvable without forking — a fork is the realistic compatibility strategy, and a fork means we own it.

Sequencing

Vendor-risk assessment and inventory of actual gateway operations → containment wrapper → Stripe SDK reimplementation → parity validation → cutover. Do not sequence this as "adopt bundle, then abstract later"; the abstraction must precede any new dependency.

Operational Impact

Maintenance

Effectively zero upstream maintenance. With no dependents, there is no pressure on the maintainer to keep pace with Stripe API versions or Symfony releases. Any fork we create becomes a permanent internal liability requiring an owner, a release process, and a scheduled Stripe API-version review (Stripe ships breaking changes on a rolling cadence).

Support

No SLA, no triage, no documented escalation. Support burden transfers entirely to our team, including Stripe-side incident diagnosis where the bundle obscures request/response detail. Onboarding documentation is the README, which for a 0-star package is typically installation-only.

Scaling

Negligible compute footprint — it is a thin HTTP client over Stripe, so throughput is bounded by Stripe's rate limits and our webhook consumer, not the bundle. The scaling concern is correctness at scale: without idempotency keys, retries under load produce duplicate charges; without webhook signature verification, replay is possible.

Failure modes

  • Silent API drift — pinned SDK against a moving Stripe API; deprecations become hard failures without warning.
  • Declined EU/UK transactions — no SCA/3DS2 flow.
  • Duplicate charges — absent idempotency on retry.
  • Webhook spoofing — missing or weak signature verification.
  • Boot failure on upgrade — blocks platform-wide Symfony/PHP upgrades.
  • Unpatched transitive CVE — no upstream release path; requires emergency fork.

Ramp-up

Engineer-level ramp-up on the bundle itself is a day; the real cost is learning the KJPaymentBundle abstraction and then re-learning the Stripe integration when we replace it. For net-new work, ramp-up on stripe/stripe-php or Cashier is comparable and carries no abandonment risk.

Recommendation: Do not adopt. If already present, contain behind a first-party interface and schedule replacement with the maintained Stripe SDK. The 0-star/0-dependent profile combined with payment-domain risk makes this a build-vs-adopt decision where building the thin adapter ourselves is strictly cheaper than owning a fork.

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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox