Description
USDPAY for MemberPress adds a USDT payment method for MemberPress. Payments are sent directly to the merchant’s wallet. The plugin supports one-time, lifetime and fixed-duration memberships through hosted USDPAY checkout on TRC20, TON or BEP20.
The plugin forwards the original MemberPress transaction amount and currency to USDPAY. Currency conversion happens on the USDPAY server; the plugin does not calculate exchange rates. A membership transaction becomes complete only after a valid signed invoice.paid webhook is verified and matched to its saved invoice, order reference, amount and currency.
Features:
- Separate MemberPress gateway installed through the official
mepr-gateway-pathsextension point. - Stable invoice idempotency keys and durable payment-attempt history.
- Customer or merchant network selection: TRC20, TON and BEP20.
- HMAC-SHA256 verification over the exact raw webhook body.
- Atomic webhook replay and transaction-level fulfillment protection.
- Safe handling of paid, simultaneously paid, duplicate and expired invoice events.
- API and webhook secrets remain server-side and are never rendered back into HTML.
Recurring automatic wallet charges are not supported.
External service
This plugin connects to USDPAY to create an invoice and redirect the customer to hosted checkout. It sends the transaction amount and ISO currency, a non-sensitive internal MemberPress transaction reference, invoice lifetime, webhook callback URL, return URL and the selected network when one is fixed by the merchant. It does not send wallet private keys, seed phrases or payment-card data.
USDPAY sends signed payment-status webhooks back to the WordPress REST endpoint created by the plugin.
- Terms: https://usdpay.me/legal/terms
- Privacy policy: https://usdpay.me/legal/privacy
Requirements
- WordPress 6.5 or newer.
- PHP 8.0 or newer.
- MemberPress 1.14.x.
- A public HTTPS WordPress site.
- A USDPAY merchant store with receiving wallets, a secret API key and webhook signing secret.
MemberPress Cart is not declared supported in version 1.0.0.
Security
The webhook endpoint reads the exact raw body, verifies X-USDPAY-Signature with timing-safe comparison, checks event headers against the body and claims the event idempotency key atomically before changing MemberPress. Invalid, unknown or mismatched events cannot activate access.
Protect WordPress administrator accounts, the database and backups as you would for any payment integration. The plugin never needs a wallet seed phrase or private key.
Troubleshooting
- Gateway missing: confirm MemberPress is active and that the membership is not automatic recurring.
- Unable to start payment: confirm the API key, site domain approval, receiving wallets and supported currency.
- Webhook rejected: confirm the webhook secret belongs to the same USDPAY store as the API key.
- Access still pending: check that the site is publicly reachable by HTTPS and inspect debug logs after enabling both
WP_DEBUGand gateway debug mode.
Installation
- Install and activate MemberPress.
- Upload
usdpay-for-memberpress-1.0.0.zipunder Plugins > Add New > Upload Plugin and activate it. - In USDPAY, create or select the store for this WordPress website and configure receiving wallets.
- Create a secret API key and copy the store webhook signing secret.
- Open MemberPress > Settings > Payments and add
USDPAY — USDT. - Enter both secrets, choose invoice expiration and network behavior, then save.
- Confirm that the displayed webhook URL uses public HTTPS.
- Buy a small one-time membership and verify that access activates only after on-chain confirmation.
FAQ
-
Does the plugin support automatic recurring memberships?
-
No. A blockchain wallet cannot be charged automatically like a stored payment card. Version 1 supports one-time, lifetime and fixed-duration memberships only.
-
Does returning from checkout activate access?
-
No. The return page is informational. Only a verified signed
invoice.paidwebhook can complete the MemberPress transaction. -
Where are secrets stored?
-
The API key and webhook secret are stored in private WordPress options and used only by server-side PHP. Saved values are masked in the MemberPress settings screen and never returned in HTML or JavaScript.
-
Can MemberPress use EUR, GBP or another currency?
-
Yes, when the currency is supported by USDPAY. The original decimal amount and ISO currency are sent to USDPAY, which calculates the required USDT amount.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“USDPAY for MemberPress” is open source software. The following people have contributed to this plugin.
Contributors“USDPAY for MemberPress” has been translated into 1 locale. Thank you to the translators for their contributions.
Translate “USDPAY for MemberPress” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- Initial MemberPress gateway.
- Added multi-currency invoice creation, hosted checkout and optional fixed network.
- Added signed, idempotent paid and expired webhook handling with compact production payload correlation.
- Added transaction-level fulfillment protection and duplicate-payment retention for manual review.
- Added server-side secret storage and safe return-status page.
- Added executable webhook, API idempotency and MemberPress lifecycle tests to the plugin package.
- Full uninstall removes credentials while preserving payment history.
- Resolved Plugin Check findings for the public package.
