lamoda/payture-inpay-bundle
Symfony bundle for integrating the Payture InPay payment API, with bundle configuration and service wiring that make Payture payment operations easier to use in Symfony-based PHP applications.
Architecture fit
The package appears to be a Laravel wrapper around payture-inpay-php-client, the vendor SDK for Payture's InPay acquiring API. The expected shape is a service provider, a publishable config file, and a thin adapter/facade over the SDK's request builders. That is a standard and acceptable fit for a Laravel application that needs card-present/redirect payment initiation, 3DS handling, and payment status queries. Caveat: no repository metadata was supplied, so the actual composition (service provider registration, facade vs. container binding, config surface) is unverified. The 1.2 release note contains only a dependency bump line and no changelog, migration notes, or diff, so the wrapper's own API surface cannot be confirmed as stable from this artifact alone.
Integration feasibility
The change described is a bump of the underlying SDK to v1.2. Feasibility therefore depends entirely on how the wrapper declares that dependency: a caret/loose constraint means consumers inherit the bump transitively on composer update, while a pinned constraint means the bump is opt-in. Either way, integration effort for the Laravel side is low (composer require, config publish, credential wiring, route registration for callbacks), but the verification effort is not, because the SDK delta is opaque.
Technical risk Payment code has a high blast radius: a behavioral change in request signing, 3DS redirect flow, or response/status mapping can produce failed authorizations or duplicate captures in production with no compile-time signal. Publishing a version bump with a one-line note and no linked changelog is itself a process risk — it suggests the maintainer does not treat the payment path as change-sensitive. Secondary risks: PHP/Laravel version constraints silently shifting, transitive Guzzle/HTTP client conflicts, and the wrapper re-exporting SDK classes so that SDK-level breaking changes leak into application code.
Key questions
payture-inpay-php-client in the wrapper's composer.json, and did 1.2 change it?Stack fit Assumed fit: PHP 8.1+, Laravel 10/11, Composer 2, standard service-provider auto-discovery. Laravel's HTTP client, queue, and event system are sufficient to wrap payment initiation and asynchronous status reconciliation. Confirm the package does not require a specific HTTP client or a global Guzzle handler, which is the most common source of conflict in acquiring integrations.
Migration path
Greenfield install: composer require with an explicit pinned version, publish config, populate credentials via environment/secrets manager (never committed config), register the callback/webhook route, and validate against the Payture sandbox before any production key is loaded. For existing consumers, treat the 1.2 bump as a deliberate change: pin the current working version, open a branch that applies the bump, and run the sandbox suite before merging. Do not allow composer update to pull the bump implicitly in production pipelines.
Compatibility Verify three axes before adoption: (1) wrapper-declared PHP/Laravel constraints versus the application's; (2) whether the SDK bump raises a minimum PHP version or swaps an HTTP dependency; (3) whether any SDK classes referenced directly by application code changed shape. Because the release note is silent, treat compatibility as unproven until a lockfile diff is reviewed.
Sequencing
composer.json/composer.lock and the SDK changelog between the prior and current versions.Maintenance Ongoing cost is dependency hygiene: an SDK that moves underneath a thin wrapper means every wrapper release is potentially a payment-path release. Budget a recurring review of both the wrapper and the vendor SDK changelogs. The absence of substantive release notes raises the maintenance burden, since each bump requires manual diffing rather than reading a migration guide.
Support Two support surfaces exist — the wrapper maintainer and Payture as the acquirer. Clarify escalation for production payment failures: merchant support contract with Payture, plus a named internal owner for the integration. Verify the wrapper has an issue tracker with recent activity; an unmaintained wrapper around a live payment SDK is a standing risk.
Scaling Payment calls are I/O-bound and latency-sensitive; throughput is governed by the acquirer's rate limits and timeout behavior, not application CPU. Ensure configurable connect/read timeouts, bounded retries with idempotency keys, and that retries never apply to non-idempotent capture operations. Status reconciliation should run through queued jobs with backoff, not synchronous request paths.
Failure modes
composer update (highest likelihood given the opaque release note).Ramp-up Low for a Laravel developer familiar with service providers and webhook routes; moderate for the payment domain concepts (authorization vs. capture, 3DS, refunds, reconciliation). Expect roughly one to two days to reach a working sandbox integration and several days more to build reconciliation and observability to a production standard. Documentation should be authored internally, since the release notes provide none.
How can I help you explore Laravel packages today?