Интеграция криптоплатежей с WooCommerce: под ключ

Почему WooCommerce не принимает криптовалюту нативно и как это исправить В ядре WooCommerce (<cite>[WooCommerce](https://woocommerce.com)</cite>) нет обработчиков для блокчейн-транзакций, поэтому приём криптовалют требует интеграции. Два пути: готовый плагин от процессора (CoinGate, NOWPayments,

Направления блокчейн-разработки

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

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1003
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1269
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    717
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1009

Почему WooCommerce не принимает криптовалюту нативно и как это исправить

В ядре WooCommerce (WooCommerce) нет обработчиков для блокчейн-транзакций, поэтому приём криптовалют требует интеграции. Два пути: готовый плагин от процессора (CoinGate, NOWPayments, Coinbase Commerce) или кастомный WooCommerce payment gateway с собственным кошельком. Разница — в кастодиальности, комиссиях и уровне контроля. Мы используем оба подхода, и ниже разберём, когда каждый выгоднее.

Какие проблемы возникают при интеграции криптоплатежей в WooCommerce и как их решаем

Курсовая волатильность и фиксация суммы — интеграция криптоплатежей с

Между созданием заказа и оплатой проходит 10–20 минут — курс может измениться на 2–5%. Если не зафиксировать крипто-сумму, магазин рискует недополучить деньги. Решение: в момент оформления запрашиваем курс через Chainlink Oracle (или биржевой API) и записываем эквивалент в сатоши/вей. Устанавливаем время жизни заявки 15–20 минут; по истечении пользователь переходит к новой с актуальным курсом. Это снижает риск проскальзывания до 0.1%.

Недоплата и переплата

Из-за ошибок пользователя или задержек сети часть средств может не дойти. Обработка:

Статус Действие
paid Полная сумма — заказ завершается
underpaid Статус on-hold, письмо менеджеру
overpaid Принимаем всё, излишек — бонус или возврат
expired Заказ отменяется, средства не принимаются

Мы также проверяем уникальный _crypto_payment_id, чтобы избежать двойной обработки webhook. Дублирущие вызовы не меняют статус заказа, если он уже completed. Логгируем через WC_Logger.

Как выбрать между готовым плагином и кастомным gateway?

Готовые плагины (CoinGate, NOWPayments) подходят для быстрого старта: настройка занимает 1–2 часа, комиссия процессора — 1–3%. Однако вы теряете контроль над средствами и не можете изменить логику обработки. Кастомный gateway даёт полный контроль: вы сами управляете кошельком, комиссия — только газ сети (0.01–0.50$ за транзакцию). При объёме более 500 заказов в месяц кастомное решение окупается за 3–4 месяца и экономит до 40% на комиссиях — это в 2-3 раза выгоднее по сравнению с готовыми плагинами.

Как это делаем: кейс кастомного gateway на Polygon

Однажды клиент захотел принимать USDT на Polygon с минимальной комиссией. Готовые плагины не подходили — нужен был свой узел и кастомная логика возврата. Мы разработали WooCommerce Payment Gateway, который:

  • Использует ethers.js для подписи транзакций на сервере (Node.js микросервис);
  • Фиксирует курс через Chainlink USDT/USD feed;
  • Генерирует уникальный депозитный адрес для каждого заказа;
  • Обрабатывает webhook от узла с верификацией подписи (EIP-712).

Ниже — структура класса WC_Crypto_Gateway. Настройка заняла 5 дней; клиент получил 0% комиссий (только газ ~0.01$ за перевод) и полный контроль.

class WC_Crypto_Gateway extends WC_Payment_Gateway { public function __construct() { $this->id = 'crypto_gateway'; $this->method_title = 'Crypto Payment'; $this->method_description = 'Accept cryptocurrency payments'; $this->has_fields = false; $this->supports = ['products']; $this->init_form_fields(); $this->init_settings(); $this->title = $this->get_option('title'); $this->description = $this->get_option('description'); $this->api_key = $this->get_option('api_key'); add_action('woocommerce_update_options_payment_gateways_' . $this->id, [$this, 'process_admin_options'] ); add_action('woocommerce_api_' . $this->id, [$this, 'handle_webhook']); } public function process_payment($order_id) { $order = wc_get_order($order_id); // Создаём платёжный запрос через наш API $payment = $this->create_crypto_payment([ 'amount' => $order->get_total(), 'currency' => get_woocommerce_currency(), 'order_id' => $order_id, 'callback_url' => WC()->api_request_url($this->id), 'success_url' => $this->get_return_url($order), ]); if (is_wp_error($payment)) { wc_add_notice('Payment error: ' . $payment->get_error_message(), 'error'); return ['result' => 'fail']; } // Сохраняем внешний ID для reconciliation $order->update_meta_data('_crypto_payment_id', $payment['id']); $order->update_status('pending', 'Awaiting crypto payment'); $order->save(); return [ 'result' => 'success', 'redirect' => $payment['payment_url'], ]; } public function handle_webhook() { $payload = file_get_contents('php://input'); $data = json_decode($payload, true); if (!$this->verify_webhook_signature($payload, $_SERVER['HTTP_X_SIGNATURE'] ?? '')) { status_header(400); exit('Invalid signature'); } $order = wc_get_order($data['order_id']); if (!$order) { status_header(404); exit('Order not found'); } switch ($data['status']) { case 'paid': $order->payment_complete($data['payment_id']); $order->add_order_note(sprintf( 'Crypto payment confirmed. Received %s %s', $data['amount_received'], $data['currency'] )); break; case 'expired': $order->update_status('cancelled', 'Crypto payment expired'); break; case 'underpaid': $order->update_status('on-hold', sprintf( 'Underpayment: expected %s, received %s', $data['amount_expected'], $data['amount_received'] )); break; } status_header(200); exit('OK'); } } 

Регистрация плагина

// crypto-payment-gateway.php (в wp-content/plugins/) /** * Plugin Name: Crypto Payment Gateway * Description: Custom cryptocurrency payment gateway * Version: 1.0.0 * Requires Plugins: woocommerce */ if (!defined('ABSPATH')) exit; add_action('plugins_loaded', function() { if (!class_exists('WC_Payment_Gateway')) return; require_once plugin_dir_path(__FILE__) . 'includes/class-wc-crypto-gateway.php'; }); 

Как настроить криптоплатежи на WooCommerce?

  1. Выберите способ интеграции — готовый плагин или кастомный gateway. Если нужен некастодиальный приём без посредников, выбирайте кастом.
  2. Установите и активируйте плагин (если готовый) или разверните свой микросервис для подписи транзакций.
  3. Настройте параметры gateway — адрес кошелька, лимиты, время жизни заявки (рекомендуем 15–20 минут).
  4. Добавьте webhook URL в настройках провайдера или вашего узла. URL формируется как https://example.com/wc-api/crypto_gateway.
  5. Протестируйте в sandbox — оплатите тестовый заказ, проверьте недоплату, истечение, дублирующие webhook.
  6. Запустите в продакшн — после успешного тестирования включите активный режим. Мониторинг через WC_Logger.

Как мы тестируем и гарантируем надёжность

Обязательно проходим сценарии в sandbox: успешная оплата, истечение, недоплата, дубль webhook, сброс курса. Используем WC_Logger для записи всех событий.

Этап Что делаем Срок
Аналитика Изучаем требования, выбираем провайдера или пишем ТЗ на кастом 1–2 дня
Реализация Кодим gateway, webhook, обработчики 3–7 дней
Тестирование Покрываем все кейсы в sandbox 1–2 дня
Деплой Разворачиваем на бою, настраиваем мониторинг 1 день

Что входит в работу

  • Выбор и настройка платёжного провайдера (CoinGate, BTCPay Server, собственный узел) или разработка кастомного gateway с нуля.
  • Полноценный класс WooCommerce Payment Gateway с поддержкой всех статусов.
  • Webhook-обработчик с HMAC-верификацией.
  • Обработка edge cases: курсовая разница, недоплата, истечение, дубли.
  • Оптимизация газа для смарт-контрактов (используем unchecked блоки, Packed structs) — снижение затрат на 15–20%.
  • Интеграция с WC_Logger для отладки.
  • Документация по установке и эксплуатации.

Наша команда имеет 6+ лет опыта в блокчейн-разработке и более 40 успешных интеграций платёжных систем в WooCommerce. У вас сложный случай? Получите консультацию — мы подберём оптимальное решение под ваш бюджет и сроки. Свяжитесь для расчёта стоимости. Закажите интеграцию криптоплатежей в WooCommerce, и мы настроим всё под ваш бизнес.