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

Payment Ogone Bundle Laravel Package

ets/payment-ogone-bundle

Ogone payment provider for JMSPaymentCoreBundle, letting Symfony apps process payments through the Ogone gateway via JMSPaymentCore. Install and usage docs included.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Despite being filed here as a Laravel/PHP package, this is a Symfony bundle, not a Laravel package. It is a provider plugin for JMSPaymentCoreBundle (JMS PaymentCore), meaning it plugs into that bundle's provider/action abstraction rather than exposing standalone services. There is no service provider, no Laravel package manifest, and no framework-agnostic entry point. For a Laravel codebase, "install and use" is not an available option — you would be porting the provider's request-building and response-verification logic into your own payment layer, at which point you are really just using this repo as a reference implementation.

Integration feasibility. Two chained dependencies must both be viable: this bundle and JMSPaymentCoreBundle. JMS PaymentCore is a legacy Symfony 2/3-era library with negligible recent activity, so the realistic integration target is a Symfony application already on (or pinned to) that stack. Composer constraints, autoloading conventions, and the bundle registration pattern all assume Symfony's kernel, not Laravel's container. The underlying gateway is the Ogone e-Commerce form-post/redirect API — Ogone became Ingenico, now Worldline, and this API is the legacy surface that Worldline maintains but actively steers customers away from in favour of Direct/Connect.

Technical risk. High, concentrated in a few areas:

  • PSD2 / 3-D Secure 2. If the provider only emits 3DSv1 parameters, EU/UK card payments will be declined or downgraded to liability-shifted-by-default. This is the single highest-impact unknown and is not evidenced in the README.
  • Signature scheme. Legacy Ogone used SHA-1 over a concatenated parameter string; SHA-256 (and the newer signature versions) are required for current configurations. Getting this wrong produces intermittent, hard-to-reproduce "invalid signature" failures in production only.
  • PCI scope. A hosted/redirect flow keeps you in SAQ-A territory, but only if the bundle genuinely never touches card data — verify rather than assume.
  • Community validation. 12 stars, 0 dependents, Travis CI and SensioLabsInsight badges (both dead services). There is no downstream usage to learn from and no evidence of third-party production hardening.
  • Maintenance reality. The 2025-04-25 release is most likely a housekeeping tag (PHP/Composer constraint bump) rather than a feature or security release; nothing in the repo signals active development.

Key questions to answer before committing:

  1. Is the target application actually Laravel? If yes, this package is a reference, not a dependency.
  2. Which Worldline API contract does this target, and is that endpoint still provisioned for new merchants?
  3. Does the implementation support 3DS2 / SCA exemption flows, or only 3DS1?
  4. Which PHP and Symfony versions are actually supported by the current tag — and does that match your runtime?
  5. What is the license, and who is the accountable maintainer (internal or upstream)?
  6. Does the flow support idempotent retries and Worldline's asynchronous notification (webhook) path, or is it redirect-response only?

Integration Approach

Stack fit. Poor for Laravel, plausible-but-aging for Symfony. Concretely:

  • Laravel: treat the repo as a specification. Extract the parameter-ordering, signature computation, and response-validation logic (typically a few hundred lines of meaningful code), reimplement behind a PaymentGateway interface, and bind it in a service provider. Do not attempt to bridge Symfony bundles into Laravel — the container, event, and config layers do not map.
  • Symfony + JMS PaymentCore: a direct integration is feasible, but pin and lock the full dependency tree, and confirm the runtime PHP version is supported by both this bundle and PaymentCore.

Migration path. The pragmatic route is an anti-corruption layer: define your own OgoneGateway contract (create payment, parse notification, verify signature, map status), implement it either by delegating to this bundle or by porting its logic. This makes the bundle swappable, lets you test against a fake, and means a future move to Worldline Direct or a maintained SDK is a contained change rather than a rewrite of checkout.

Compatibility. Audit composer.json before anything else: PHP constraint, Symfony constraint, PaymentCore constraint, and whether the package is installable at all on a current runtime. Confirm the signature algorithm against the merchant account configuration in the Worldline back office — mismatch here is the most common first-integration failure.

Sequencing.

  1. Spike (1–2 days): install in a throwaway Symfony skeleton (or read the source if Laravel), confirm it resolves and produces a well-formed payment request.
  2. Contract verification: obtain a Worldline test account, confirm the API version is still provisioned, and confirm 3DS2 support. This gate can kill the initiative — do it early.
  3. Sandbox certification: run the full matrix — success, decline, 3DS challenge, 3DS frictionless, cancel, duplicate submission, notification replay.
  4. Abstraction layer: build the internal interface and adapters; write contract tests against the interface, not the bundle.
  5. Pilot: single market or low-volume payment method behind a flag, with reconciliation against Worldline settlement reports.
  6. Rollout, retaining the abstraction so the legacy API can be retired on Worldline's timetable, not yours.

Operational Impact

Maintenance. Assume you own it. The upstream signals — dead CI and code-quality badges, 12 stars, no dependents, sporadic tagging — indicate a low-ceremony, best-effort project. Budget for forking and vendoring if you adopt it; plan for the possibility that a future Worldline API change is never reflected upstream.

Support. There is no commercial support path. Worldline support will not diagnose issues in a third-party bundle, and the bundle's maintainers are not a support organisation. Your internal team is the escalation tier, which means at least one person must be able to read the source and reason about signatures and status codes.

Scaling. Transaction volume itself is not the constraint — a redirect flow scales trivially. The operational scaling concerns are elsewhere: idempotency on retries (double-charge risk), reliable processing of asynchronous notifications (duplicates, out-of-order arrival, missed callbacks), and reconciliation between your order state and Worldline settlement files. None of that is provided by a thin provider plugin; it is your responsibility.

Failure modes to instrument for:

  • Signature validation failures after a merchant-configuration change (silent, total checkout outage).
  • 3DS2 gaps surfacing as elevated decline rates rather than errors — easy to miss without monitoring authorisation rates by issuer and country.
  • Duplicate charges from client-side retries or notification replays.
  • Currency, minor-unit rounding, and locale mismatches on the hosted page.
  • Hard deprecation of the legacy e-Commerce endpoint by Worldline, which converts a slow-burn risk into a scheduled migration.

Ramp-up. A mid-level developer familiar with payments can audit and sandbox this in roughly one to two weeks; less if the abstraction layer already exists. The real cost is domain ramp-up — PSD2/SCA rules, 3DS transaction states, and Worldline-specific status semantics — not the code volume. Given the small footprint, the realistic recommendation is: do not adopt as a dependency, adopt as a reference, and build the thin adapter yourself so the eventual Worldline API migration is a swap rather than a project.

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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle