Інтеграція криптоплатіжного шлюзу на сайт

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція криптоплатіжного шлюзу на сайт
Простий
~3-5 днів
Часті запитання

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

Етапи блокчейн-розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1306
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1218
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    920
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1147
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    610
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    885

Інтеграція крипто-платіжного шлюзу на сайт

Типова задача: є робочий сайт з кошиком і звичайним еквайрингом, потрібно додати оплату крипто-валютою. Головна помилка тут — робити це самостійно "з нуля": генерувати адреси, слухати транзакції, обробляти confirmations. Для більшості e-commerce проектів це надлишково і створює операційне навантаження. Правильний підхід — використовувати готовий процесинг (Coinbase Commerce, NOWPayments, CryptoPay, BTCPay Server) і інтегрувати його через webhook.

Вибір процесингу

Рішення Custody Комісія Self-hosted Підходить для
Coinbase Commerce Non-custodial 1% Ні Швидкий старт, USD-ринок
NOWPayments Custodial (авто-конвертація) 0.5–1% Ні Багато монет, авто-конвертація в fiat
BTCPay Server Non-custodial 0% Так Повний контроль, тільки BTC/LN
CoinGate Custodial 1% Ні E-commerce плагіни
Чистий кастом Non-custodial 0% Висока нагрузка, особливі вимоги

Для більшості сайтів оптимально: NOWPayments (широкий список монет, авто-конвертація в USDT/USDC) або Coinbase Commerce (якщо аудиторія переважно американська).

Схема інтеграції

Базовий flow через будь-який процесинг однаковий:

  1. Користувач натискає "Оплатити крипто-валютою"
  2. Бекенд вашого сайту створює invoice через API процесингу
  3. Користувач отримує адресу і суму до оплати
  4. Процесинг моніторить блокчейн і уведомлює ваш бекенд через webhook
  5. Бекенд верифікує webhook, помічає замовлення як оплачене

Приклад: NOWPayments

# Створення платежу
curl -X POST https://api.nowpayments.io/v1/payment \
  -H "x-api-key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "price_amount": 99.99,
    "price_currency": "usd",
    "pay_currency": "eth",
    "order_id": "ORDER-12345",
    "ipn_callback_url": "https://yoursite.com/api/crypto-webhook"
  }'

Ответ містить pay_address, pay_amount (в ETH за поточним курсом), payment_id. Показуєте користувачу адресу і суму, опціонально — QR-код.

Обробка webhook (критично важливо)

Webhook не можна приймати наївно — потрібна верифікація підпису:

// PHP приклад для NOWPayments
public function handleWebhook(Request $request): JsonResponse
{
    $payload = $request->getContent();
    $signature = $request->header('x-nowpayments-sig');

    // Верифікація HMAC-SHA512
    $expected = hash_hmac(
        'sha512',
        $this->sortPayload($payload),
        config('services.nowpayments.ipn_secret')
    );

    if (!hash_equals($expected, $signature)) {
        return response()->json(['error' => 'Invalid signature'], 401);
    }

    $data = json_decode($payload, true);

    // Обробляємо лише фінальні статуси
    if ($data['payment_status'] === 'finished') {
        $this->orderService->markAsPaid($data['order_id'], [
            'tx_hash'        => $data['outcome_hash'],
            'amount_paid'    => $data['actually_paid'],
            'currency'       => $data['pay_currency'],
        ]);
    }

    return response()->json(['status' => 'ok']);
}

Статуси, які потрібно обробляти: waitingconfirmingconfirmedsendingfinished. Статус failed і expired — окрема логіка (розблокувати товар, уведомити користувача).

Underpayment і курсові ризики

Користувачі часто платять чуть менше необхідного (забули про gas, округлили). Потрібна явна політика: допустиме відхилення ±1–2%, або вимога доплати. NOWPayments має параметр is_fixed_rate — фіксує курс на 20 хвилин, поки користувач оплачує. Це зменшує курсові ризики для обох сторін.

Що потрібно реалізувати на стороні сайту

  • Endpoint створення платежу (POST /api/create-crypto-payment)
  • Webhook handler з верифікацією підпису
  • Сторінка очікування з polling статусу платежу (раз в 10–15 сек)
  • Обробка істеклих платежів (timeout 15–60 хв залежно від мережі)
  • Логування всіх webhook подій для reconciliation

Повна інтеграція з нуля до production займає 2–3 дні з урахуванням тестування на testnet/sandbox і edge cases.