
Магазинам игровых ключей, подарочных карт, аккаунтов, курсов и других товаров всё чаще попадаются покупатели, которым удобнее заплатить криптой, и чаще всего — в USDT. В этом гайде — как добавить криптовалюту способом оплаты в WooCommerce: покупатель выбирает крипту на оформлении заказа, платит на странице SnapEX Pay в USDT в сетях TRON, Ethereum, BSC, Solana, TON, Polygon и других или другой монетой, и заказ сам переходит в Processing («Обработка»). Свой кошелёк и нода блокчейна не нужны — деньги приходят на баланс мерчанта SnapEX Pay в USDT.
Как проходит платёж
покупатель → крипта → Place order
плагин → SnapEX Pay: счёт в USD
покупатель → платит на SnapEX Pay
SnapEX Pay → вебхук → магазин
плагин → GET счёта в API → paid?
WooCommerce: заказ Processing
- Покупатель оформляет заказ с криптовалютным способом оплаты. Плагин создаёт счёт SnapEX Pay на сумму заказа в USD и отправляет покупателя на страницу оплаты.
- Покупатель выбирает монету и сеть и платит. Когда счёт оплачен, SnapEX Pay шлёт вашему магазину подписанный вебхук.
- Плагин перечитывает счёт через API SnapEX Pay и проводит заказ, только если счёт в статусе
paidи сумма совпадает. Одно лишь тело вебхука ничего не отмечает оплаченным.
Заказ отмечается оплаченным тремя независимыми способами — каким сработает первым: подписанным вебхуком, при возврате покупателя со страницы оплаты и фоновой проверкой (WP-Cron запускает её каждые 5 минут; каждый ожидающий заказ перепроверяется не чаще раза в 10 минут, в течение 5 дней). Потерянный вебхук не оставит оплаченный заказ неоплаченным, и заказ не проведётся дважды — даже если вебхук, возврат покупателя и проверка сработают одновременно.
Что нужно
- WordPress 6.2+ и WooCommerce 8.2+ (проверено до WooCommerce 11.2).
- PHP 7.4 или новее.
- HTTPS на адресе магазина — иначе SnapEX Pay не сможет доставлять вебхуки.
- Аккаунт мерчанта SnapEX Pay: регистрация на pay.snapex.pro.
Плагин работает с блоком Checkout и классической страницей [woocommerce_checkout], со ссылками «Pay for order» («Оплатить заказ»), с HPOS (отдельными таблицами заказов) и со старым хранением заказов.
Шаг 1. Установите плагин
Плагин бесплатный и опубликован в каталоге WordPress.org: SnapEX Pay for WooCommerce.
- В админке WordPress откройте Плагины → Добавить новый плагин и найдите SnapEX Pay.
- Нажмите Установить у SnapEX Pay for WooCommerce, затем Активировать. WooCommerce к этому моменту должен быть активен.
Через WP-CLI:
wp plugin install snapex-pay-for-woocommerce --activate
Если сервер не достаёт до WordPress.org, скачайте snapex-pay-for-woocommerce-1.1.0.zip и загрузите его в Плагины → Добавить новый плагин → Загрузить плагин. Обновления потом приходят обычным экраном обновлений WordPress. В базе руками ничего делать не нужно.
Шаг 2. Получите API-ключ
В кабинете мерчанта SnapEX Pay откройте «Разработчикам» и выпустите API-ключ. Плагину нужны права invoices.read и invoices.write; ключ из кабинета получает все права Merchant API, в том числе эти. Ключ показывается один раз — сразу скопируйте его. Перевыпуск сразу отзывает старый ключ, поэтому меняйте его в WooCommerce в тот же момент.
Шаг 3. Настройте способ оплаты
Откройте WooCommerce → Настройки → Платежи и нажмите SnapEX Pay (crypto) (или Settings у плагина на странице «Плагины»). Заполните поля:
| Поле | Что указать |
|---|---|
| Enable | Отметьте Accept crypto with SnapEX Pay. |
| Title | Что покупатель видит на оформлении; по умолчанию Crypto (USDT and other coins) — можно написать «Криптовалюта (USDT и другие монеты)». |
| Description | Строка под названием на оформлении. |
| API key | Ключ из шага 2. Без него способ оплаты на оформлении не показывается. |
| Webhook secret | См. шаг 4. |
| Network fee paid by | Merchant — покупатель платит ровно сумму заказа, комиссии удерживаются из поступления. Customer — комиссия SnapEX Pay и комиссия сети добавляются покупателю сверху. Подробно: Кто платит комиссию за криптоплатёж. |
| Payment window, minutes | Сколько действует страница оплаты: от 1 до 1440, по умолчанию 60. |
| USD for 1 … | Только если валюта магазина не USD — см. шаг 5. |
| Test mode | См. шаг 6. |
| Partner ID | См. шаг 7. |
| API URL | Оставьте как есть. |
Сохраните изменения. Способ оплаты появится на оформлении заказа с иконкой SnapEX Pay.
Шаг 4. Настройте вебхук
Вебхук необязателен, но рекомендуется: с ним заказ переходит в Processing сразу после подтверждения оплаты, а не при следующей фоновой проверке.
- Скопируйте адрес вебхука, который показан под полем Webhook secret. С включёнными ЧПУ он вида
https://<ваш магазин>/wc-api/snapexpay_webhook/. - В кабинете на странице «Разработчикам» вставьте его адресом вебхука и сохраните.
- Секрет подписи
whsec_…показывается один раз, сразу после первого сохранения. Вставьте его в поле Webhook secret в WooCommerce и сохраните.
Как плагин проверяет уведомление:
- заголовок
Webhook-Signature: HMAC-SHA256 от{Webhook-Timestamp}.{сырое тело запроса}с вашим секретом; без подписи или с неверной — ответ401; Webhook-Timestamp— не дальше 5 минут от часов сервера (старше — ответ400), держите NTP включённым;- сам счёт — перечитывается через API SnapEX Pay вашим ключом.
Если API в этот момент недоступен, плагин отвечает 502, и SnapEX Pay повторит доставку. В кабинете один адрес вебхука на аккаунт; на события по счетам, которые создал не этот магазин, плагин отвечает 200 и пропускает их — так один аккаунт мерчанта может обслуживать ещё и биллинг или бота. Если открыть адрес вебхука в браузере, появится SnapEX Pay webhook endpoint — так легко проверить, что его не блокирует файрвол, плагин безопасности или кэш. Подробно о подписи и повторах: Вебхуки криптоплатежей.
Шаг 5. Если магазин торгует не в долларах
Счета SnapEX Pay — в долларах США. Если цены в магазине в рублях, евро или другой валюте, в настройках появляется поле USD for 1 RUB (с кодом вашей валюты). Два варианта:
- Фиксированный курс. Укажите, сколько долларов стоит единица вашей валюты: если сегодня 1 USD = 80 RUB, укажите
0.0125(1 / 80). Сумма заказа пересчитывается по этому курсу; обновлять его нужно самим. - Плагин валют. Оставьте поле пустым и пересчитывайте в фильтре
snapexpay_wc_amount_usd: он получает сумму (илиnull), сумму заказа, валюту и заказ и возвращает сумму в USD.
Без курса и без фильтра криптовалютный способ оплаты на оформлении скрыт — покупатель не увидит способ, который не может принять его заказ.
Шаг 6. Тестовый заказ без реальных денег
- Включите Test mode. Теперь способ оплаты видят только менеджеры магазина (пользователи с правом управлять WooCommerce, в том числе администраторы); покупатели его не видят — никто не оплатит настоящий заказ тестовыми деньгами.
- В том же браузере, войдя администратором, положите товар в корзину, перейдите к оформлению, выберите криптовалютный способ и оформите заказ.
- На странице SnapEX Pay — метка Test. Выберите любую монету и сеть: страница покажет тестовый адрес, и примерно через 10 секунд платёж подтвердится сам. Ничего отправлять не нужно.
- Вас вернёт на страницу «Заказ получен», а заказ в WooCommerce → Заказы станет Processing. В заметках заказа — SnapEX Pay: invoice INV-… paid … Test payment. Если нет — смотрите заметки заказа, WooCommerce → Статус → Журналы (источник
snapexpay) и журнал доставок на странице «Разработчикам» в кабинете. - Выключите тестовый режим.
Тестовые платежи не зачитываются после выключения тестового режима (в заметке заказа — test invoice … paid while test mode is off — not applied), так что тестовыми деньгами нельзя оплатить настоящий товар. Подробно: Как протестировать криптоплатежи без денег.
Шаг 7. Partner ID: кто настроил плагин
Поле Partner ID необязательно. Если вы настраиваете WooCommerce для своего магазина, оставьте его пустым.
Если вы агентство или фрилансер по WordPress и делаете магазины клиентам, вставьте свой Partner ID: аккаунт мерчанта клиента привяжется к вам, и вы будете получать 35% нашей комиссии с платежей этого клиента. Клиент сам заводит аккаунт SnapEX Pay и API-ключ, деньги идут на его баланс. Условия: партнёрская программа SnapEX Pay.
Что видит покупатель
- На оформлении заказа — криптовалютный способ оплаты с названием и описанием из настроек.
- После Place order («Оформить заказ») — страницу оплаты SnapEX Pay: USDT в сетях TRC20, ERC20, BEP20, Solana, TON, Polygon и других, а также другие монеты (60+ всего), если SnapEX Pay предлагает их для суммы заказа.
- После оплаты покупатель возвращается на страницу «Заказ получен» магазина. Если платёж уже подтверждён, заказ сразу оплачен; если нет — перейдёт в Processing по вебхуку или при следующей фоновой проверке.
- Если страница оплаты истекла, её кнопка возврата в магазин ведёт на страницу «Pay for order» этого заказа. Повторная оплата, пока страница действует, открывает ту же страницу, а не второй счёт; после её истечения или если сумма заказа изменилась, создаётся новая.
Что происходит с заказом
- Оформлен, ещё не оплачен → Pending payment («Ожидает оплаты») с заметкой SnapEX Pay: payment page opened, invoice INV-… for … USD. Настройка WooCommerce Hold stock не отменит заказ, пока его страница оплаты действует.
- Оплачено полностью → стандартное завершение оплаты WooCommerce: заказ становится Processing (или Completed для виртуальных и скачиваемых товаров), остатки списываются, уходят обычные письма. Номер транзакции — ID счёта SnapEX Pay (
INV-…), по нему платёж легко найти в кабинете. - Оплачено частично (покупатель прислал меньше и не доплатил вовремя) → On hold («На удержании») с заметкой о монете, сети и полученной сумме. Полученное лежит на вашем балансе SnapEX Pay; проверьте его в кабинете и, если принимаете, проведите заказ вручную. Как устроены недоплаты: Клиент заплатил меньше суммы счёта.
- Не оплачено вовремя → заметка invoice INV-… expired unpaid; заказ остаётся неоплаченным, покупатель может оплатить его заново по ссылке «Pay for order».
- Оплачено после того, как WooCommerce отменил заказ → On hold с заметкой the order was no longer awaiting payment — check stock and process it manually. Заказы, отменённые за последние 5 дней, всё равно проверяются, так что такой платёж не потеряется.
- Сумма заказа изменилась после того, как покупатель открыл оплату (например, вы отредактировали заказ) → On hold с заметкой the order total changed after the payment started; проверьте и проведите вручную.
- Лишний платёж после закрытия счёта SnapEX Pay → если настроен вебхук, заметка extra payment received on invoice INV-… — check the SnapEX Pay cabinet; деньги на вашем балансе SnapEX Pay, заказ не меняется.
Возвраты плагин не отправляет: возврат в WooCommerce только записывается в заказ, крипта автоматически назад не уходит.
Если что-то не работает
- Способа оплаты нет на оформлении. Проверьте, что он включён и API-ключ заполнен; что тестовый режим выключен (или вы вошли менеджером магазина); для магазина не в долларах — что сделан шаг 5.
- «Could not start the crypto payment: …». SnapEX Pay отклонил счёт — чаще всего неверный или отозванный API-ключ; причина — в сообщении и в WooCommerce → Статус → Журналы (источник
snapexpay). - «Crypto payment is not available for this currency». Заказ в валюте, на которую курс не действует (курс из настроек — только для основной валюты магазина); другие валюты пересчитывайте в фильтре
snapexpay_wc_amount_usd. - Вебхук получает 401. Webhook secret в WooCommerce не совпадает с секретом из кабинета.
- Вебхук получает 400 «stale or missing timestamp». Сбиты часы сервера.
- Вебхук получает 503. Адрес в кабинете указан, а поле Webhook secret в WooCommerce пустое.
- Вебхук получает 403 или страницу входа. Файрвол или плагин безопасности блокирует POST-запросы к
/wc-api/; разрешите адрес вебхука. - Оплаченный заказ переходит в Processing не сразу. Вебхука нет — платёж подхватила фоновая проверка. Настройте шаг 4. WP-Cron срабатывает только при заходах на сайт; в тихом магазине запускайте
wp-cron.phpсистемным cron раз в несколько минут.
Всё, что делает плагин, — в заметках заказа и в WooCommerce → Статус → Журналы (источник snapexpay). Чтобы удалить его, деактивируйте и удалите плагин на странице «Плагины».
Стоимость
1% с платежа плюс фиксированная сетевая комиссия, которая зависит от монеты и сети; без платы за подключение и абонентской платы. Плагин бесплатный.
Страница плагина: WooCommerce, на WordPress.org: SnapEX Pay for WooCommerce. Обзор для магазинов: Криптоплатежи для интернет-магазинов. Сравнение шлюзов: SnapEX Pay против NOWPayments, Cryptomus и CoinGate. Регистрация: pay.snapex.pro.