Інтеграція криптоплатежів з WooCommerce: під ключ

Інтеграція криптоплатежів з WooCommerce: під ключ ## Чому WooCommerce не приймає криптовалюту нативно і як це виправити У ядрі WooCommerce (<cite>[WooCommerce](https://woocommerce.com)</cite>) немає обробників для блокчейн-транзакцій, тому прийом криптовалют вимагає інтеграції. Два шляхи: гото

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

Часті запитання

Останні роботи

  • 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
    1008

Інтеграція криптоплатежів з WooCommerce: під ключ

Чому 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, і ми налаштуємо все під ваш бізнес.