Releases: Setono/SyliusQuickpayPlugin
Releases · Setono/SyliusQuickpayPlugin
Release list
v2.0.0-alpha.2
Second pre-release of the 2.0 line. Everything from v2.0.0-alpha.1 plus:
New
- A doctor command (#131):
setono:sylius-quickpay:doctorverifies every configured Quickpay gateway against the Quickpay API — api key, private-key checksum self-test, agreement existence, order-prefix length and cross-gateway uniqueness, and the notify-route registration.--liveadditionally creates a money-less test payment and probes the payment linkPUTpermission, catching the classicNot authorized to PUT /payments/:id/linkcase before a customer does. Non-zero exit on failures, so it can run in CI or cron. See the README's Checking your configuration section. - Fraud signals surfaced (#132): a Fraud suspected badge on the admin operation history, an opt-in
fraud.block_captureguard that skips the automatic capture on completion for flagged payments (leaving them for manual review — the transition itself proceeds), and a--fraud-suspectedreport mode on the reconciliation command that asks Quickpay directly for flagged payments across all configured gateways.
Fixed
- The api-key check no longer rejects locked-down api users (#141): Quickpay answers 401 on
/pingboth for an invalid key and for a valid key whose api user merely lacks the/pingpermission, so the form-save credential check (and the doctor) now verify through a/paymentsread when the ping is rejected — a valid key always saves; only an explicit rejection on both endpoints counts as invalid.
Install
composer require setono/sylius-quickpay-plugin:^2.0@alpha setono/payum-quickpay:^2.0@RC setono/quickpay-php-sdk:^1.2Upgrading from 1.x: read UPGRADE-2.0.md. Full changes: v2.0.0-alpha.1...v2.0.0-alpha.2
v2.0.0-alpha.1
First pre-release of the 2.0 line — a rebuild of the plugin on setono/payum-quickpay 2.x and the setono/quickpay-php-sdk (PSR-18/17). Suitable for testing; not yet for production.
Install
composer require setono/sylius-quickpay-plugin:^2.0@alpha setono/payum-quickpay:^2.0@RC setono/quickpay-php-sdk:^1.2Highlights over 1.x
- Scalar-only payment details —
quickpayPaymentIdis the source of truth; the payment is re-fetched from Quickpay when needed, so details never go stale. - Capture mode as an explicit choice on the gateway form: on completion (authorize at checkout, capture when the payment completes — the default) or immediately.
- Hardened callbacks: every callback is HMAC-verified (
QuickPay-Checksum-Sha256); store-initiated operations report back on per-payment urls with no configuration; concurrent deliveries for the same payment are serialized with a Symfony lock so a retry can never apply a state change twice (#109). - Reconciliation command (
setono:sylius-quickpay:reconcile-payments) for payments whose callback never arrived. - Admin payment link: copy or email a pay-link for any Quickpay payment still awaiting payment (phone/invoice orders, abandoned checkouts).
- Live operation history on the admin order view — fetched from Quickpay after page load, never blocking the page.
- Payment method logos on the checkout, derived from the gateway's
payment_methodsoption (Quickpay token grammar understood; bundled SVGs from Shopify's MIT-licensed payment_icons). - API key verified at save — a typo'd key is rejected in the admin form; a Quickpay outage never blocks saving.
- Both Sylius 1.14 state machine adapters supported (winzou and
symfony_workflow). - Refunds target Quickpay's balance (what is still captured), so partial refunds made in the Quickpay manager no longer break refunding from Sylius.
- Translations in 16 locales.
- Removed: Klarna-specific machinery, the
app/config.yamlimport, the oldapikey/privatekey/agreementoption names (stored configs are migrated on load).
Upgrading from 1.x
Read UPGRADE-2.0.md — it covers the gateway configuration keys, removed imports, renamed routes and classes, and the behavioral changes around refunds and callbacks.
Requirements
PHP 8.1+, Symfony ^6.4, Sylius ~1.14. Full changes: v1.5.0...v2.0.0-alpha.1
v1.5.0
v1.4.0
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.2
New disable_capture option
Merge pull request #23 from Setono/disable-capturing New config option to disable capturing