Skip to content

v1.0.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@loevgaard loevgaard released this 06 Aug 12:59
· 18 commits to 1.x since this release
419fb53

First beta — the API surface is now considered stable for 1.0. The alpha series deliberately made its breaking changes early; no further BC breaks are planned before v1.0.0, and remaining work is feedback, polish and documentation.

Where the SDK stands

  • Scope: the payments resource (create/read/list/update + authorize/capture/refund/cancel), the /ping health check, the payment-window link flow, and callback (webhook) verification — deliberately narrow and typed.
  • Contracts verified against the live API, not the docs: required request fields are required constructor arguments (orderId/currency on create, amount on links and operations, all five BasketItem fields); Address/Shipping verified lenient; response quirks (e.g. is3d_secure returning a boolean) modeled from real responses.
  • Async operations documented honestly: without ?synchronized the API answers 202 with a queued-operation snapshot — the docblocks explain what you can and cannot read from it, and the client-wide synchronized constructor flag sets the default once.
  • Callback verification is deliberately un-mockable: CallbackHandler/CallbackValidator are final with no interfaces; the README's new "Testing your callback endpoint" section (#7, the one change since alpha.4) documents the intended pattern — a real handler with a test key and validator()->sign()-forged signatures.
  • Quality gates: 109 tests across PHP 8.1–8.5 × lowest/highest, PHPStan level max, mutation score MSI 85% / covered 85% (gate 70), plus a committed real-API e2e harness (examples/e2e/).

Changed since v1.0.0-alpha.4

  • README: "Testing your callback endpoint" section (#7). Docs only — no code changes.

Full changelog: v1.0.0-alpha.4...v1.0.0-beta.1