Криптовалюти
Як правильно тестувати систему криптоплатежів перед запуском: чек-лист
#криптоеквайринг
Тестування платіжної системи — це не формальність, а захист бізнесу. Одна помилка в обробці транзакцій може коштувати тисяч доларів. Криптовалютні платежі незворотні: відправили гроші на неправильну адресу — вони втрачені назавжди. Тому кожен елемент системи перевіряється до запуску.
Помилки платіжних систем позбавили глобальну e-commerce $1,86 трильйона виручки. Більшість проблем виявляється на етапі тестування. Компанії, які пропускають перевірку, стикаються з втратою клієнтів, фінансовими претензіями та репутаційним збитком.
Чому криптоплатежі вимагають особливого підходу
Транзакції незворотні. У традиційних платежах можна скасувати операцію, повернути гроші, оспорити списання. У блокчейні такого немає. Одна помилка в адресі гаманця — кошти втрачені. Система повинна валідувати кожне введення користувача.
Безліч блокчейнів з різними правилами. Bitcoin працює інакше, ніж Ethereum. У кожної мережі свої часи підтвердження, комісії, формати адрес. Тестуйте всі підтримувані блокчейни окремо — баг в одному не означає працездатність інших.
Різні браузери та платформи. Помилка може проявитися тільки в Safari на iOS або у вбудованому браузері Telegram. Тестуйте на реальних пристроях, а не тільки в емуляторах. Користувачі платять з телефонів — система повинна працювати скрізь.
Підготовка до тестування
Налаштуйте тестове середовище. Всі великі платіжні платформи надають sandbox — ізольоване оточення з віртуальними криптовалютами. Проводьте транзакції без ризику втратити реальні гроші. Перевіряйте всі сценарії до запуску в продакшн.
Підготуйте тестові дані. Створіть список адрес гаманців для різних блокчейнів. Зберіть приклади коректних і некоректних введень: правильні адреси, адреси з друкарськими помилками, занадто короткі, занадто довгі. Використовуйте їх для перевірки валідації.
Отримайте тестові токени. Для тестування в реальних блокчейнах (тестнети Ethereum, Bitcoin) потрібні тестові монети. Отримайте їх через faucet-сервіси. Це дозволить перевірити інтеграцію зі справжніми мережами без фінансових ризиків.
Чек-лист функціонального тестування
Перевірка 1: Генерація платіжної адреси
- Система створює унікальну адресу для кожної транзакції
- Адреса відповідає вибраному блокчейну (Bitcoin, Ethereum, TRON)
- QR-код генерується коректно і містить правильні дані
- Адреса відображається повністю, без обрізання символів
- Кнопка копіювання працює на всіх пристроях

Перевірка 2: Відображення суми платежу
- Сума в криптовалюті розраховується за актуальним курсом
- Курс оновлюється в режимі реального часу
- Комісія мережі включена в розрахунок або відображається окремо
- При зміні курсу користувач бачить нову суму
- Відображається час життя платіжного посилання (таймер зворотного відліку)
Перевірка 3: Валідація адреси гаманця
- Система перевіряє формат адреси перед відображенням
- Неповна адреса при автозаповненні або копіюванні не приймається
- Адреса з зайвими символами відхиляється
- Адреса для іншого блокчейну не проходить валідацію
- Користувач бачить контрольну суму для звірки
Перевірка 4: Обробка платежу
- Транзакція виявляється в блокчейні протягом 30 секунд
- Статус оновлюється: 'Очікування підтвердження' — 'Підтверджується (1/3)' — 'Оплачено'
- Система коректно обробляє часткову оплату (менше необхідної суми)
- Переплата фіксується і повертається або зараховується на баланс
- Webhook відправляється на backend при підтвердженні транзакції
Перевірка 5: Сповіщення користувача
- Клієнт отримує email-підтвердження при створенні платежу
- Сповіщення приходить при виявленні транзакції в блокчейні
- Фінальне підтвердження відправляється після повного зарахування
- Повідомлення містять ID транзакції та посилання на блокчейн-експлорер
- Всі тексти зрозумілі і без технічного жаргону
Чек-лист безпеки
Перевірка 6: Аутентифікація та авторизація
- Двофакторна аутентифікація обов'язкова для адмін-панелі
- API-ключі передаються тільки по HTTPS
- Секретні ключі зберігаються на сервері, не в мобільному додатку
- Webhook-підписи перевіряються перед обробкою даних
- Токени доступу мають термін дії та автоматично оновлюються
Перевірка 7: Захист від атак
- Rate limiting обмежує кількість запитів з одного IP
- SQL-ін'єкції блокуються параметризованими запитами
- XSS-атаки попереджаються екрануванням користувацького введення
- CSRF-токени захищають від підробки запитів
- Дані карт (якщо використовуються) відповідають PCI DSS
Перевірка 8: Дотримання регуляторних вимог
- KYC-перевірки включені для транзакцій вище порогу (якщо потрібно)
- AML-скринінг блокує підозрілі адреси
- Транзакції із заборонених країн відхиляються
- Дані користувачів шифруються при зберіганні та передачі
- Логи транзакцій доступні для аудиту протягом 5 років
Чек-лист продуктивності
Перевірка 9: Навантажувальне тестування
- Система обробляє 100 одночасних транзакцій без затримок
- API відповідає за 200-500 мс при нормальному навантаженні
- База даних масштабується при зростанні числа платежів
- Черги webhook-запитів обробляються без втрат
- Система відновлюється після збою без втрати даних
Перевірка 10: Час відгуку
- Генерація платіжної адреси займає менше 2 секунд
- QR-код відображається миттєво
- Перевірка статусу транзакції виконується за 1 секунду
- Webhook доставляється на backend протягом 10 секунд після підтвердження
- Сторінка оплати завантажується повністю за 3 секунди на 3G
Чек-лист користувацького досвіду
Перевірка 11: Кросбраузерність
- Платіжна форма коректно відображається в Chrome, Safari, Firefox, Edge
- QR-код сканується на iOS та Android
- Кнопка копіювання адреси працює на всіх платформах
- Deep links відкривають потрібні гаманці (MetaMask, Trust Wallet)
- Мобільні браузери не обрізають елементи інтерфейсу
Перевірка 12: Обробка помилок
- Недостатня сума: система показує, скільки не вистачає
- Закінчився термін платіжного посилання: пропонується створити нове
- Транзакція застрягла: пояснюється причина і пропонується рішення
- Помилка мережі: автоматична повторна спроба через 5 секунд
- Всі повідомлення про помилки зрозумілі користувачу без технічних термінів
Перевірка 13: Мобільна адаптація
- Інтерфейс адаптований під екрани від 320px до 1920px
- Кнопки досить великі для натискання пальцем (мінімум 44x44px)
- Текст читається без зуму
- QR-код займає достатньо місця для сканування
- Прокрутка працює плавно на всіх пристроях
Чек-лист інтеграційного тестування
Перевірка 14: Взаємодія з блокчейном
- Система підключається до нод всіх підтримуваних блокчейнів
- Транзакції відстежуються в режимі реального часу
- При збої ноди система автоматично перемикається на резервну
- Gas fee розраховується динамічно на основі завантаження мережі
- Всі форки та оновлення блокчейнів обробляються коректно
Перевірка 15: Webhook-сповіщення
- Webhook доставляється на вказаний endpoint
- Дані в webhook повні і структуровані правильно
- При помилці доставки система повторює спробу (3-5 разів)
- Підпис webhook перевіряється на стороні отримувача
- Дублікати webhook фільтруються
Перевірка 16: Бухгалтерська інтеграція
- Транзакції експортуються в CSV з повною деталізацією
- Курс конвертації фіксується на момент платежу
- API надає доступ до історії всіх операцій
- Звіти сумісні з бухгалтерським ПЗ (QuickBooks, Xero)
- Дані для податкової звітності генеруються автоматично
Особливі сценарії для перевірки
Сценарій 1: Користувач відправив менше необхідної суми. Система фіксує часткову оплату. Показує повідомлення: 'Отримано 80 USDT з 100. Відправте ще 20 USDT на ту ж адресу'. Транзакція завершується після повної оплати.
Сценарій 2: Курс криптовалюти різко змінився під час платежу. Закінчився термін платіжного посилання. Користувач бачить сповіщення: 'Курс змінився. Створіть новий платіж'. Стара адреса більше не приймає гроші.
Сценарій 3: Транзакція застрягла через низький gas fee. Система відстежує статус. Через 30 хвилин без підтверджень пропонує: 'Транзакція застрягла. Хочете прискорити з додатковою комісією?' Користувач може збільшити fee або почекати.
Сценарій 4: Мережа блокчейну перевантажена. Підтвердження транзакції займає більше години. Система показує: 'Мережа перевантажена. Ваш платіж у черзі (1024/2000)'. Оновлює статус кожні 5 хвилин. Сповіщає, коли транзакція підтверджена.
Сценарій 5: Користувач копіює адресу з помилкою. Система валідує формат при вставці. Показує: 'Неправильний формат адреси. Перевірте і вставте знову'. Не дозволяє продовжити з некоректними даними.
Інструменти для автоматизації тестування
Використовуйте спеціалізовані фреймворки. Для блокчейн-тестування підходять Hardhat (Ethereum), Ganache (локальний блокчейн), Brownie (Python для смарт-контрактів). Вони дозволяють симулювати транзакції локально без реальних витрат.
Автоматизуйте API-тести. Інструменти на кшталт Postman або Insomnia дозволяють створити набір тестів для API платіжного шлюзу. Перевіряйте створення платежів, обробку webhook, отримання статусу — автоматично після кожного оновлення коду.
Якщо шукаєте надійний сервіс з прийому криптовалют, який видаватиме мінімум помилок, рекомендуємо Heleket. Комісії від 0.4%, готові модулі для CMS, підтримка всіх популярних криптовалют, автоконвертація в стейблкоїни, щоб уникнути наслідків волатильності криптовалют. З Heleket можете не боятися, що виникнуть проблеми — активна підтримка допоможе їх вирішити.
Документування результатів
Ведіть журнал тестування. Записуйте кожен перевірений сценарій: що тестували, який результат отримали, які баги знайшли. Це допомагає відстежити прогрес і переконатися, що всі пункти чек-листа покриті.
Створіть базу відомих проблем. Задокументуйте всі знайдені баги з описом, кроками відтворення та рішенням. Коли проблема повториться в майбутньому, ви відразу знайдете відповідь у базі знань.
Діліться звітами з командою. Після кожного раунду тестування складайте короткий звіт: скільки тестів пройшло, скільки провалилося, критичні проблеми, статус виправлень. Це тримає всіх у курсі готовності системи.
Регресійне тестування після оновлень
Кожне оновлення вимагає повторної перевірки. Нова функція може зламати існуючі. Після кожного релізу проходьте критичні тести: створення платежу, обробка транзакції, webhook-сповіщення. Це займає 15-30 хвилин, але попереджає простої.
Автоматизуйте регресію. Створіть набір автоматичних тестів, які запускаються при кожному коміті в репозиторій. Якщо щось зламалося, CI/CD-пайплайн не дасть задеплоїти код у продакшн.
Тестування криптоплатіжної системи — це не разове завдання, а постійний процес. Перед запуском перевіряйте функціональність, безпеку, продуктивність та користувацький досвід. Використовуйте цей чек-лист як основу: адаптуйте під свої завдання, додавайте специфічні перевірки, автоматизуйте рутинні тести. Кожна знайдена проблема на етапі тестування — це заощаджені гроші та збережена репутація. Не запускайте систему в продакшн без повної перевірки — ціна помилки занадто висока.
