USDPAY for MemberPress

Описание

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 и режима отладки платёжного шлюза.

Установка

  1. Установите и активируйте MemberPress.
  2. Загрузите usdpay-for-memberpress-1.0.0.zip в разделе Плагины > Добавить новый > Загрузить плагин и активируйте его.
  3. В USDPAY создайте или выберите магазин для этого сайта WordPress и настройте кошельки для приёма платежей.
  4. Создайте секретный API-ключ и скопируйте секрет подписи webhook магазина.
  5. Откройте MemberPress > Настройки > Платежи и добавьте USDPAY — USDT.
  6. Введите оба секрета, выберите срок действия инвойса и настройку сети, затем сохраните изменения.
  7. Убедитесь, что отображаемый URL webhook доступен публично по HTTPS.
  8. Купите недорогую подписку с разовой оплатой и убедитесь, что доступ активируется только после подтверждения транзакции в блокчейне.

Часто задаваемые вопросы

Поддерживает ли плагин автоматические продления подписок?

Нет. С блокчейн-кошелька нельзя автоматически списывать средства, как с сохранённой банковской карты. Версия 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 для публичного пакета.