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

Paybox Bundle Laravel Package

royalpunk/paybox-bundle

royalpunk/paybox-bundle is a PHP package for integrating Paybox payments into your application. It offers a bundle-style wrapper around Paybox payment flows, helping simplify setup and payment handling so developers can connect their app to Paybox checkout more easily.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • The package is described as a Laravel/PHP integration for Paybox, but the artifact is named a "bundle" — Symfony's packaging vocabulary. This is a TPM-relevant ambiguity, not a pedantic one: it changes the integration estimate, the skill required, and whether the package can be auto-discovered by Laravel's service provider mechanism at all. Resolve it in the first hour of the spike by inspecting for *Bundle.php / DependencyInjection/ versus a ServiceProvider and publishable config.
  • The functional surface implied by the description is narrow and well-bounded: build a signed payment request, redirect, receive a callback, verify the signature. That is a good sign for scope control — a TPM can plan a small, single-sprint deliverable around it. It is a bad sign for completeness: there is no mention of refunds, capture-later authorization, tokenization, recurring billing, multi-currency, or 3-D Secure 2 challenge handling.
  • Strategically, the package's real value to the program is as a reference implementation and integration checklist, not as an inherited dependency. The decision this supports is "wrap or write ~200 lines ourselves," and the package de-risks that by showing the exact PBX field ordering, signing rules, and callback shape.
  • Whatever the outcome, the package must sit behind an internal PaymentGateway interface (initiate / capture / refund / webhook). That abstraction is the durable deliverable; the vendor code is replaceable. Frame the epic that way to stakeholders and the schedule stops being hostage to a zero-star library.

Integration feasibility

  • Adoption evidence is effectively absent: no stars, no dependents, aggregate score 0, and an "opportunity" score of 15.83 whose scale and provenance are undocumented. A TPM should explicitly instruct the team not to cite that number as a quality signal in any go/no-go document.
  • Hosting on a self-managed forge rather than Packagist/GitHub has concrete delivery consequences a TPM must plan around: Composer requires a vcs repository entry plus credentials injected into CI, there is no public issue tracker to gauge health, no CI badge to confirm tests run, no fork graph, and no Packagist metadata to pin a version constraint against. This is a supply-chain and build-pipeline work item, not a footnote.
  • Zero dependents means zero field validation. There is no downstream bug corpus telling you which Paybox edge cases fail — so your test plan is the entire safety net. Budget QA time accordingly; it is the single largest hidden cost in this integration.
  • License and provenance are unknown from the metadata. For payment code, unclear licensing is a procurement gate, not a risk to note and proceed past.

Technical risk

  • Signature verification is the top risk. An incorrectly ordered signed field list, a non-constant-time comparison, or a missing verification on the callback path is a silent authentication bypass. It warrants its own review task with a named reviewer and a written test, not a line item inside "integrate package."
  • Idempotency and replay protection on the IPN callback are commonly absent in small wrappers. Without a persisted transaction state machine and a dedupe key, gateway retries become double charges — a customer-facing, finance-visible incident.
  • Amount handling is a classic defect surface: Paybox expects integer minor units and a specific currency code. Rounding errors here are financially material and hard to reverse.
  • PCI scope. If the flow ever touches card data in your application instead of a hosted redirect/page, compliance cost dominates any integration saving. Confirm the redirect-only posture in writing before the epic is scheduled.
  • SCA / PSD2 / 3DS2. EU card payments require challenge flows and exemption handling. A thin legacy-style wrapper is unlikely to cover this. If 3DS2 is a launch requirement, that alone can invalidate the build-vs-wrap estimate and should be answered before a release date is promised.

Key questions

  1. Laravel package or Symfony bundle? What PHP/Laravel (or Symfony) versions are declared?
  2. What is the license, and is the repo reachable without credentials?
  3. Does it generate and unit-test HMAC signing plus constant-time callback verification?
  4. Does it cover idempotency, duplicate callbacks, refunds, and 3-D Secure — or only payment initiation?
  5. Is there a test suite, and does it run against the Paybox sandbox?
  6. Who is the maintainer of record, and is the code a fork of something else?
  7. What is the security disclosure path given the forge is not a public platform?

Integration Approach

Stack fit

  • Do not plan to consume this as a maintained runtime dependency on current evidence. The realistic plan is: read it, extract the signing and endpoint logic, and reimplement or vendor the small amount of code that matters inside our own adapter. That is a smaller, more predictable work item than integrating an unvetted library — and it eliminates the credentials-in-CI problem entirely.
  • If the team does consume it directly, pin to a commit SHA, never a branch, record it in the SBOM with a license determination, and assign an internal owner at the same time.

Migration path

  • Phase 0 — Source audit (gate). Framework detection, license check, secret handling, signature verification review, test-suite presence. No-go here saves the rest of the budget.
  • Phase 1 — Sandbox spike (gate, timeboxed 1–2 days). Exercise success, decline, 3DS challenge, timeout, and duplicate-callback against the Paybox test environment. Timeboxed deliberately: sunk cost stays at days, not a quarter.
  • Phase 2 — Encapsulation. Build our own PayboxGateway adapter with an explicit transaction state machine behind the internal PaymentGateway interface. Third-party code, if retained, becomes a private implementation detail.
  • Phase 3 — Contract tests. Pin request/response fixtures so swapping to the official Verifone SDK or a direct HTTP client later is a contained change rather than a rewrite.
  • Phase 4 — Cutover behind a feature flag, with reconciliation jobs running both before and after.

Compatibility

  • Verify HTTP client (Guzzle/PSR-18) constraints and service-provider discovery against our current framework version before committing. A payment integration must not force a framework upgrade collision mid-sprint.
  • Test explicitly under php artisan config:cache. Packages that call env() at runtime instead of reading published config pass locally and fail only in production-shaped environments — a classic late-stage surprise.
  • Confirm which Paybox API generation the package targets (legacy PBX vs. current Verifone e-commerce endpoints). Mixing documentation generations is expensive and easy to miss in review.

Sequencing

  • Run Phase 0 and Phase 1 in parallel and gate all further spend on both passing. Plan the fork-and-own outcome as the default, not the contingency — that framing keeps the estimate honest and prevents the program from betting a launch date on an unmaintained dependency.
  • Downstream dependencies to schedule early: merchant credentials (site, rank, identifier, HMAC key) from the business/Paybox account owner, sandbox access, and finance sign-off on reconciliation and refund handling. These have external lead times and are the usual critical path, not the code.

Operational Impact

Maintenance

  • Assume ownership from day one. One apparent maintainer, no dependents, and no public issue traffic means the effective upstream support level is zero. Plan an internal fork, a named owner, and a written patch policy before production.
  • Track the Paybox/Verifone API changelog ourselves — a dormant wrapper will not surface deprecation notices. Assign this to the payments owner as a recurring review item, not an ad-hoc one.
  • Budget recurring time for dependency bumps (HTTP client, PHP minor versions) that upstream will almost certainly not perform.

Support

  • There is no community knowledge base for this package. Escalation paths are the original author (availability unknown) or Paybox/Verifone merchant support directly. Document both in the runbook; do not let the on-call rotation discover this during an incident.
  • Paybox documentation and merchant support are French-first. Confirm the on-call team has language coverage or a translation path — payment incidents are time-critical and translation latency is real downtime.
  • Ensure secrets (HMAC key, merchant identifier) live in the existing secret manager with a rotation procedure, and that request payload logging is reviewed so card data and keys never reach logs.

Scaling

  • Throughput is a non-issue: this is a thin synchronous HTTP wrapper and payment QPS is low relative to normal application traffic. Do not let a capacity review consume sprint time here.
  • The genuine scaling risks sit in our own code: webhook ingestion under retry storms, reconciliation batch volume, and concurrency on a shared merchant identifier. Require timeouts, bounded retries, and circuit breaking in our adapter rather than assuming the package provides them.

Failure modes

  • Signature verification bug → fraudulent callbacks accepted or legitimate ones rejected; both silent until reconciliation.
  • Missing idempotency → duplicate charges on gateway retry or user double-submit.
  • Timeout treated as failure → order marked failed while the charge succeeded; the correct response is reconciliation, not retry.
  • Callback arriving before the initiating request returns → race on transaction state; needs an upsert-style state machine, not a naive read-then-write.
  • Stale pinned commit → a Paybox endpoint or field change breaks checkout with no upstream fix forthcoming; mitigated only by the changelog watch above.

Ramp-up

  • Small: a mid-level PHP engineer can absorb the request/signing/callback model in under a day, because the package's scope is narrow.
  • The expensive knowledge is Paybox domain knowledge — field semantics, signature rules, 3DS2 obligations, refund and reconciliation semantics — and it transfers poorly from thin code. Deliberately pair the spike with a written integration note so the finding survives the sprint.
  • Recommended program posture: approve the audit and the timeboxed spike now; do not approve this as a production dependency without a named owner, a pinned fork, and a confirmed answer on 3-D Secure. Low cost to evaluate, low cost to abandon, moderate risk if adopted blindly.
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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style