Описание
USDPAY for MemberPress добавляет в MemberPress способ оплаты в USDT. Платежи поступают напрямую на кошелёк продавца. Плагин поддерживает разовые, бессрочные подписки и подписки с фиксированным сроком через защищённую страницу оплаты USDPAY в сетях TRC20, TON и BEP20.
Плагин передаёт в USDPAY исходную сумму и валюту транзакции MemberPress. Конвертация валюты выполняется на сервере USDPAY; плагин не рассчитывает обменные курсы. Транзакция подписки завершается только после проверки действительного подписанного webhook invoice.paid и его сопоставления с сохранённым инвойсом, идентификатором заказа, суммой и валютой.
Возможности:
- Отдельный платёжный шлюз MemberPress, подключаемый через официальный extension point
mepr-gateway-paths. - Стабильные ключи идемпотентности инвойсов и надёжная история попыток оплаты.
- Выбор сети клиентом или продавцом: TRC20, TON и BEP20.
- Проверка HMAC-SHA256 по точному исходному телу webhook.
- Атомарная защита от повторной обработки webhook и повторного выполнения транзакции.
- Безопасная обработка оплаченных, одновременно оплаченных, повторных и просроченных событий инвойса.
- Секреты API и webhook остаются на сервере и никогда не выводятся обратно в HTML.
Автоматические повторные списания с кошелька не поддерживаются.
Внешний сервис
Плагин подключается к USDPAY, чтобы создать инвойс и перенаправить клиента на защищённую страницу оплаты. Он передаёт сумму транзакции и код валюты ISO, несекретный внутренний идентификатор транзакции MemberPress, срок действия инвойса, URL обратного вызова webhook, URL возврата и выбранную сеть, если продавец зафиксировал её. Приватные ключи кошельков, seed-фразы и данные банковских карт не передаются.
USDPAY отправляет подписанные webhook о статусе платежа на созданный плагином REST endpoint WordPress.
- Условия использования: https://usdpay.me/legal/terms
- Политика конфиденциальности: https://usdpay.me/legal/privacy
Требования
- WordPress 6.5 или новее.
- PHP 8.0 или новее.
- MemberPress 1.14.x.
- Публичный сайт WordPress с HTTPS.
- Магазин USDPAY с кошельками для приёма платежей, секретным API-ключом и секретом подписи webhook.
Поддержка MemberPress Cart в версии 1.0.0 не заявлена.
Безопасность
Endpoint webhook считывает исходное тело запроса без изменений, проверяет X-USDPAY-Signature сравнением, устойчивым к тайминг-атакам, сопоставляет заголовки события с телом и атомарно фиксирует ключ идемпотентности до изменения данных MemberPress. Недействительные, неизвестные или несоответствующие события не могут активировать доступ.
Защищайте учётные записи администраторов WordPress, базу данных и резервные копии так же, как при любой платёжной интеграции. Плагину никогда не нужны seed-фраза или приватный ключ кошелька.
Устранение неполадок
- Платёжный шлюз отсутствует: убедитесь, что MemberPress активен, а подписка не настроена на автоматическое продление.
- Не удаётся начать оплату: проверьте API-ключ, подтверждение домена сайта, кошельки для приёма платежей и поддерживаемую валюту.
- Webhook отклонён: убедитесь, что секрет webhook относится к тому же магазину USDPAY, что и API-ключ.
- Доступ всё ещё ожидает активации: проверьте, что сайт публично доступен по HTTPS, и изучите журнал после включения
WP_DEBUGи режима отладки платёжного шлюза.
Установка
- Установите и активируйте MemberPress.
- Загрузите
usdpay-for-memberpress-1.0.0.zipв разделе Плагины > Добавить новый > Загрузить плагин и активируйте его. - В USDPAY создайте или выберите магазин для этого сайта WordPress и настройте кошельки для приёма платежей.
- Создайте секретный API-ключ и скопируйте секрет подписи webhook магазина.
- Откройте MemberPress > Настройки > Платежи и добавьте
USDPAY — USDT. - Введите оба секрета, выберите срок действия инвойса и настройку сети, затем сохраните изменения.
- Убедитесь, что отображаемый URL webhook доступен публично по HTTPS.
- Купите недорогую подписку с разовой оплатой и убедитесь, что доступ активируется только после подтверждения транзакции в блокчейне.
Часто задаваемые вопросы
-
Поддерживает ли плагин автоматические продления подписок?
-
Нет. С блокчейн-кошелька нельзя автоматически списывать средства, как с сохранённой банковской карты. Версия 1 поддерживает только разовые, бессрочные подписки и подписки с фиксированным сроком.
-
Активирует ли доступ возврат со страницы оплаты?
-
Нет. Страница возврата носит информационный характер. Завершить транзакцию MemberPress может только проверенный подписанный webhook
invoice.paid. -
Где хранятся секреты?
-
API-ключ и секрет webhook хранятся в закрытых параметрах WordPress и используются только серверным PHP-кодом. Сохранённые значения скрыты на экране настроек MemberPress и никогда не возвращаются в HTML или JavaScript.
-
Может ли MemberPress использовать EUR, GBP или другую валюту?
-
Да, если валюта поддерживается USDPAY. Исходная десятичная сумма и код валюты ISO передаются в USDPAY, который рассчитывает необходимую сумму в USDT.
Отзывы
Нет отзывов об этом плагине.
Участники и разработчики
«USDPAY for MemberPress» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«USDPAY for MemberPress» переведён на 1 язык. Благодарим переводчиков за их работу.
Перевести «USDPAY for MemberPress» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
1.0.0
- Первая версия платёжного шлюза MemberPress.
- Добавлены создание мультивалютных инвойсов, защищённая страница оплаты и необязательная фиксация сети.
- Добавлена идемпотентная обработка подписанных webhook об оплате и истечении срока с компактным сопоставлением production payload.
- Добавлены защита выполнения на уровне транзакции и сохранение повторных платежей для ручной проверки.
- Добавлены серверное хранение секретов и безопасная страница статуса возврата.
- В пакет плагина добавлены исполняемые тесты webhook, идемпотентности API и жизненного цикла MemberPress.
- При полном удалении учётные данные удаляются, а история платежей сохраняется.
- Устранены замечания Plugin Check для публичного пакета.
