E-commerce ยท WordPress
WooCommerce Beta
Beta mobile-money checkout for classic WooCommerce and Checkout blocks, with status-API confirmation.
| Version | 0.1.2 |
|---|---|
| Compatibility | WordPress 6.4+, WooCommerce 8+, PHP 8.1+. |
| Install | Download the ZIP from this page and upload it in WordPress. WordPress.org submission is a later release. |
| Source | integrations/woocommerce-ssentezo |
| License | GPL-2.0-or-later, so it can be reviewed for WordPress.org later. |
| Sandbox | Settings default to sandbox and do not start a payment. The production host is refused. Another host requires an operator attestation that its payment mode was verified independently. A test phone number is not that attestation. Live mode requires a separate confirmation. The balance connection test does not start a payment and does not reveal the organization mode. |
Supported in this version
- Classic checkout and Cart/Checkout blocks
- Mobile-number field for payment prompts
- Sandbox or live credentials
- Mobile-money collection
- Server-side status verification
- Order status updates
- Duplicate callback protection
- Sandbox mode blocks the production host
Install
- Download
ssentezo-wallet.zipand upload it in WordPress. - Open Settings, Ssentezo Wallet. Leave Sandbox selected. Enter a staging base URL, the API user, and the API key, then run Test connection.
- Open WooCommerce, Settings, Payments, and enable Ssentezo Wallet. The API key is not entered on that screen.
- Use a shop currency of UGX. Sandbox checkout stays disabled until the sandbox-host box is checked, and then accepts only 256770000001, 256770000002, 256770000003, and 256770000004.
Checkout
Classic checkout and the WooCommerce Cart and Checkout blocks collect a Ugandan mobile number. The plugin calls POST /api/deposit and sets the order to on hold. The thank-you page says the payment is not confirmed. A callback to /wc-api/ssentezo_wallet, and a poll about every ten minutes, both call POST /api/get_status/{externalReference}. The order is paid only when that call returns HTTP 200, SUCCEEDED, the same reference, currency UGX, and the same amount. A cancelled or refunded order is not reopened. There is no timeout status, so a pending payment is not failed by the clock.
Troubleshooting
- A reused external reference is rejected. Each attempt adds a new reference.
- Pending stays on hold. The plugin does not turn a pending payment into a failure on a timer.
- Customer-facing errors do not include the API body. Details go to the WooCommerce log source
ssentezo-walletwithout the API key.
WordPress.org submission is not part of this beta.
Ssentezo Developers