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

Php Sdk Laravel Package

wepay/php-sdk

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. wepay/php-sdk is a thin object-oriented wrapper around WePay's REST API v2 (accounts, checkouts, credit cards, subscriptions, disputes). It is framework-agnostic PHP with no Laravel service provider, facade, config publishing, or container bindings. Fit with a modern Laravel codebase is therefore conditional: it can be wrapped cleanly, but it will not behave like a first-class Laravel package out of the box. The SDK's resource-object model (e.g., WePay\Account, WePay\Checkout) maps reasonably to a Laravel service class layer, but the transport is tightly coupled to an older Guzzle major version, which is the primary architectural friction point.

Integration feasibility. Feasible only via a maintained fork. The published package targets a 2017-era PHP toolchain and Composer constraints that will conflict with Laravel 9+/PHP 8.1+. Realistic minimum work: rewrite composer.json constraints, modernize autoloading, replace deprecated Guzzle APIs, add PHP 8 return types/strict types, and audit the request-signing and error-handling paths. A Laravel wrapper (service provider + facade + config/wepay.php + secret binding to env/Vault) is straightforward once the fork compiles.

Technical risk. High. The package is effectively abandoned (last release January 2017, ~56 stars), and WePay itself was acquired by JPMorgan Chase in 2017 and folded into Chase's payment rails — meaning upstream API v2 documentation, sandbox access, and deprecation notices may be inconsistent or gated behind a merchant relationship. There is an ~8-year security and dependency-patching gap, no PHP 8 support, no PSR-18/PSR-17 compliance, and no active maintainer. The low opportunity score (1.14) reflects that this is a legacy rail, not a strategic integration. Treat adoption as a risk-acceptance decision, not a convenience decision.

Key questions.

  • Is WePay/Chase a contractually mandated payment rail, or is this a legacy integration we are inheriting?
  • Does the business still hold an active WePay merchant account, and can we obtain sandbox credentials and current API v2 docs?
  • Are there PCI DSS implications for how card data flows through this SDK (direct card capture vs. tokenized credit_card_id)?
  • Who owns the fork, and what is the internal SLA for patching it?
  • What is the exit path if WePay v2 is deprecated — is a PSP abstraction layer in place?

Integration Approach

Stack fit. Requires a compatibility fork before it will install alongside Laravel 10/11. Plan for: composer.json constraint rewrite, Guzzle 7 upgrade, PHP 8.2 compatibility, and removal of any mcrypt/each()-era remnants. Once forked, bind it as a singleton in a WePayServiceProvider, expose a WePay facade for DX, publish config/wepay.php for client_id, client_secret, access_token, and environment, and route secrets through Laravel's encrypted config or an external secret manager — never .env in production for live merchant credentials.

Migration path. Recommended sequence:

  1. Discovery — inventory existing WePay call sites, webhook handlers, and reconciliation jobs; confirm which API v2 endpoints are actually used (typically /checkout/create, /checkout, /refund, /account, /credit_card).
  2. Fork and modernize — publish under an internal namespace (e.g., internal/wepay-sdk), add CI, static analysis (PHPStan), and a compatibility test suite against the sandbox.
  3. Laravel wrapper — service provider, facade, config, exception translation (map WePay error codes to domain exceptions), retry/backoff middleware, idempotency key generation on create operations.
  4. Consider a thin-client alternative — because the SDK surface is small, re-implementing on Illuminate\Support\Facades\Http or Guzzle 7 directly is often cheaper than resurrecting the SDK, and it removes an unmaintained dependency from the tree entirely.

Compatibility. The SDK's transport will not interoperate with Laravel's HTTP client without rewriting the request layer. Do not attempt partial upgrades — either fully fork-and-modernize or replace with a first-party thin client. Webhook payloads must be validated against the signature scheme documented at the time of the merchant contract; assume no upstream support if that scheme changes.

Sequencing. Discovery → fork/modernize → wrapper + tests → sandbox certification → parallel run in a low-value environment → phased cutover by payment flow (e.g., one-time checkouts before subscriptions) → decommission legacy call paths. Keep a direct HTTP fallback path behind a feature flag so a failure in the SDK fork doesn't block revenue.

Operational Impact

Maintenance. You inherit full ownership. Budget for: quarterly dependency review, CVE triage on Guzzle/transitive packages, PHP minor-version compatibility testing, and API contract monitoring. SCA tooling (Dependabot, Snyk) will continuously flag this package; the team needs an accepted-risk record or a plan to vendor and pin it. This is an ongoing 0.1–0.2 FTE cost, not a one-time integration.

Support. Effectively none from the community. Vendor support exists only through the Chase/WePay merchant relationship and is likely account-manager-mediated rather than developer-facing. Do not expect upstream bug fixes, security patches, or PHP version support. Internal runbooks and API behavior documentation are mandatory.

Scaling. The SDK issues synchronous HTTP calls with no built-in retry, circuit breaker, or rate-limit handling. At any meaningful volume, checkout and refund calls must be offloaded to queued jobs, wrapped with exponential backoff and idempotency keys, and instrumented with latency/error metrics. Watch for connection-pool exhaustion if a shared Guzzle client isn't used, and for TLS/certificate issues on older Guzzle versions.

Failure modes. Highest-risk: (1) silent upstream API v2 deprecation or behavioral drift with no changelog; (2) unmaintained dependencies blocking PHP/Laravel upgrades across the whole application; (3) duplicate charges from missing idempotency on retries; (4) webhook signature verification drift causing missed payment state transitions; (5) TLS/CA bundle failures from an old HTTP stack. Each needs a monitoring and reconciliation guardrail.

Ramp-up. Low-to-moderate for a PHP developer — the API surface is small and the SDK is readable. High for anyone unfamiliar with payment-state semantics (auth/capture, refunds, disputes, idempotency, PCI scope). Allocate time for sandbox experimentation and for reconstructing documentation that no longer exists upstream. Given the low opportunity score, the honest recommendation is: adopt only if WePay is contractually required; otherwise prefer a direct Laravel HTTP client integration or an actively maintained PSP.

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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels