This package adds Blockpn crypto checkout support for Clientexec.
- Clientexec 7.x on PHP 8.2 through 8.4
- Clientexec 6.x on PHP 7.4, 8.1, or 8.2
- 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.phpfile 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.
- 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.
payments:links:readpayments:links:writepayments:invoices:readpayments:invoices:writewebhooks:write
INSTALL.mdexplains setup and callback configuration.package/blockpn-clientexec/contains the native Clientexec gateway source.QA.mdlists the code-level verification checklist.tests/oauth-contract.phpverifies encrypted storage, one-time administrator-bound actions, URL validation, private state isolation, and cleanup.tests/runtime-qa.mjsextracts the release ZIP and exercises device OAuth, checkout, and signed callbacks with Clientexec-compatible stubs.tests/official-runtime-qa.mjsinstalls the release ZIP into an official Clientexec root and verifies gateway package conventions plus callback bootstrap. SetBLOCKPN_CLIENTEXEC_ROOTand, for HTTP callback bootstrap,BLOCKPN_CLIENTEXEC_URL.vendor/blockpn/Blockpnis added by the package builder.