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

Інтеграція криптоплатіжного шлюзу на сайт Ми часто стикаємося з задачею: є працюючий сайт з кошиком і звичайним еквайрингом, потрібно додати оплату криптовалютою. Головна помилка — робити це самостійно «з нуля»: генерувати адреси, слухати транзакції, обробляти confirmations. Для більшості e-comme

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

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

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

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

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

Ми часто стикаємося з задачею: є працюючий сайт з кошиком і звичайним еквайрингом, потрібно додати оплату криптовалютою. Головна помилка — робити це самостійно «з нуля»: генерувати адреси, слухати транзакції, обробляти confirmations. Для більшості e-commerce проєктів це надмірно і створює операційне навантаження. Крім того, самостійна реалізація часто призводить до вразливостей: підробка вебхуків, втрата платежів через неправильну обробку підтверджень, проблеми з курсовими коливаннями.

Наш підхід — використовувати готовий процесинг (Coinbase Commerce, NOWPayments, CryptoPay, BTCPay Server) та інтегрувати його через webhook. Ми реалізували понад 50 інтеграцій різної складності — від простих магазинів до high-load платформ. Замовте інтеграцію під ключ, і ми знімемо всі ризики.

Як вибрати криптопроцесинг для вашого сайту?

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

Для більшості сайтів оптимально: NOWPayments (широкий список монет, авто-конвертація в USDT/USDC) або Coinbase Commerce (якщо аудиторія переважно американська). Якщо потрібен повний контроль — обирайте BTCPay Server, але врахуйте витрати на хостинг та адміністрування. У високонавантажених сценаріях NOWPayments обробляє платежі в 2-3 рази швидше за BTCPay завдяки хмарній інфраструктурі.

Типова схема інтеграції

Базовий 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 не можна приймати наївно — потрібна верифікація підпису. Без неї зловмисник може імітувати повідомлення та позначити замовлення як оплачене. Всі серйозні процесинги використовують HMAC для підпису запитів.

// 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, округлили). У 85% випадків underpayment не перевищує 1%. Потрібна чітка політика: допустиме відхилення ±1–2%, або вимога доплати. NOWPayments має параметр is_fixed_rate — фіксує курс на 20 хвилин, поки користувач оплачує. Це знижує курсові ризики для обох сторін. Ми гарантуємо, що ваші кошти не пропадуть навіть при нестабільному курсі.

Чек-лист для запуску криптоплатежів
  • [ ] Вибрано процесинг та створено API-ключ
  • [ ] Налаштовано endpoint створення інвойсів
  • [ ] Реалізовано webhook-обробник з верифікацією підпису
  • [ ] Налаштовано сторінку оплати з QR-кодом та таймером
  • [ ] Додано обробку статусів failed/expired
  • [ ] Налаштовано логування всіх webhook-подій
  • [ ] Проведено тестування на testnet/sandbox

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

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

Що входить в нашу роботу

При замовленні інтеграції під ключ ми надаємо:

  • Вибір процесингу з обґрунтуванням (аналіз аудиторії, гео, комісій)
  • Розробку REST-ендпоінтів та webhook-обробника
  • Налаштування сторінки оплати з QR-кодом та таймером
  • Логування всіх статусів для reconciliation
  • Документацію по API та інструкцію для адміністратора
  • Підтримку після запуску (багфікс, доопрацювання)

Повна інтеграція з нуля до production займає 2–3 дні з урахуванням тестування на testnet/sandbox та edge cases. Отримайте консультацію з налаштування webhook та верифікації підпису. Зв'яжіться з нами — оцінимо ваш проєкт і запропонуємо оптимальне рішення.