Skip to content

Latest commit

 

History

History
46 lines (35 loc) · 2.28 KB

File metadata and controls

46 lines (35 loc) · 2.28 KB

Clientexec Blockpn Module

This package adds Blockpn crypto checkout support for Clientexec.

Compatibility

  • Clientexec 7.x on PHP 8.2 through 8.4
  • Clientexec 6.x on PHP 7.4, 8.1, or 8.2

Connection Setup

  • Connects a merchant profile through Blockpn device authorization without copying credentials.
  • Binds short-lived setup actions and private device state to the authenticated Clientexec administrator.
  • Encrypts issued credentials and private device state with AES-256-GCM using a module-owned random key plus the Clientexec installation salt.
  • Keeps the module key in the upgrade-preserved uploads/blockpn/.blockpn-key.php file and applies owner-only permissions where supported.
  • Enforces device polling backoff and revokes managed connections before local credential cleanup.
  • Provides a blank-field manual recovery page without rendering saved secrets.

Checkout Flow

  • Default API base: https://api.blockpn.com
  • Checkout modes: hosted_redirect
  • Creates fixed, order-specific Blockpn payment links.
  • Redirects customers to Blockpn hosted checkout by default.
  • Sends a public invoice reference and encrypted invoice token in Blockpn metadata.
  • Stores public Blockpn payment references in platform payment data.
  • Verifies signed Blockpn webhooks before changing order state.
  • Posts the Clientexec callback URL during payment-link creation.

Required Merchant API Scopes

  • payments:links:read
  • payments:links:write
  • payments:invoices:read
  • payments:invoices:write
  • webhooks:write

Files

  • INSTALL.md explains setup and callback configuration.
  • package/blockpn-clientexec/ contains the native Clientexec gateway source.
  • QA.md lists the code-level verification checklist.
  • tests/oauth-contract.php verifies encrypted storage, one-time administrator-bound actions, URL validation, private state isolation, and cleanup.
  • tests/runtime-qa.mjs extracts the release ZIP and exercises device OAuth, checkout, and signed callbacks with Clientexec-compatible stubs.
  • tests/official-runtime-qa.mjs installs the release ZIP into an official Clientexec root and verifies gateway package conventions plus callback bootstrap. Set BLOCKPN_CLIENTEXEC_ROOT and, for HTTP callback bootstrap, BLOCKPN_CLIENTEXEC_URL.
  • vendor/blockpn/Blockpn is added by the package builder.