Объяснять, зачем нужны платежи в криптовалюте, в 2025 году, наверное, не надо. Если вы читаете этот гид — значит, вы уже знаете зачем. В нём я разберу процесс подключения криптоплатежей на примере платформы Heleket, однако описанный здесь принцип применим к большинству криптоплатёжных провайдеров, таких как Coinbase Commerce, BitPay, CoinGate, NOWPayments, CryptoProcessing, Cryptomus итд, так что гид подойдёт тем, кто хочет разобраться в технической стороне, безотносительно конкретной платформы.
Прежде чем погрузиться в код, кратко рассмотрим, что нам предлагают с технической точки зрения. При выборе криптоплатёжной платформы мы смотрим на:
-
Гибкость API, возможность кастомизировать процесс оплаты
-
Автоматизацию: наличие поддержки массовых выплат или автоконвертации
-
Безопасность: современные протоколы защиты данных
-
Поддерживаемые валюты (основные — BTC, ETH, USDT)
Heleket:
-
Поддерживаемые валюты: более 20, включая BTC, ETH, USDT, LTC, что покрывает большинство сценариев.
-
API и интеграция: REST API, SDK на Python/Node.js, плагины для WooCommerce, WHMCS, XenForo.
-
Автоконвертация: преобразование платежей в стейблкоины (например, USDT) для защиты от волатильности.
-
Массовые выплаты: отправка до 100 транзакций за раз через один эндпоинт.
-
Безопасность: HMAC-авторизация для защиты Webhook’ов, 2FA для доступа к личному кабинету, Шифрование данных по стандартам PCI DSS, Мониторинг транзакций для предотвращения мошенничества.
-
Автоматизация: настройка автоматического вывода средств через API.
-
Комиссии: начинаются от 0.4%, отсутствует плата за подключение, что удобно для тестов.
Такой набор функционала подходит для проектов, где нужна быстрая обработка большого числа криптовалютных платежей — например, платежи за предметы в играх, оплата VPN. Теперь посмотрим, как это подключить.
Пошаговая интеграция Heleket
Интеграция криптоплатежей включает несколько этапов: регистрацию, настройку API, обработку callback’ов и тестирование.
Шаг 1: Регистрация и получение API-ключа
-
Перейдите на сайт Heleket (документация доступна в разделе Developer Portal).
-
Зарегистрируйтесь, указав email и пароль.
-
В личном кабинете создайте проект и получите API-ключ. Пример:
Bearer sk_test_1234567890abcdef
-
Сохраните ключ в безопасном месте (например, в .env).
Heleket не взимает плату за подключение, так что можно сразу начать тестирование в песочнице.
Шаг 2: Настройка API для создания платежа
Основной эндпоинт для создания платежа — POST /v1/payment. Пример запроса на Python:
import requests import os # Настройки API_KEY = os.getenv("HELEKET_API_KEY") BASE_URL = "https://api.heleket.com/v1" # Создание платежа payload = { "amount": 100.50, "currency": "USDT", "callback_url": "https://your-site.com/callback", "description": "Оплата за подписку", "convert_to": "USDT" # Автоконвертация } headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } response = requests.post(f"{BASE_URL}/payment", json=payload, headers=headers) if response.status_code == 200: payment = response.json() print(f"Платёж создан: {payment['payment_url']}") else: print(f"Ошибка: {response.text}")
Что происходит:
-
Платёж создаётся в USDT на сумму 100.50.
-
convert_to включает автоконвертацию (например, если клиент платит в BTC).
-
callback_url указывает, куда придёт уведомление о статусе.
Ответ содержит payment_url — ссылку или QR-код, который показывается клиенту.
Шаг 3: Обработка callback’ов
Heleket отправляет Webhook на ваш callback_url при изменении статуса платежа. Пример обработки на Flask:
from flask import Flask, request import hmac import hashlib app = Flask(__name__) SECRET_KEY = "your_webhook_secret" # Из настроек Heleket @app.route("/callback", methods=["POST"]) def handle_callback(): # Проверка подписи signature = request.headers.get("X-Signature") payload = request.get_data() expected = hmac.new(SECRET_KEY.encode(), payload, hashlib.sha256).hexdigest() if not hmac.compare_digest(signature, expected): return "Invalid signature", 403 data = request.json if data["status"] == "completed": print(f"Платёж {data['payment_id']} на {data['amount']} {data['currency']} подтверждён") # Обновите статус заказа в вашей системе return "OK", 200 if __name__ == "__main__": app.run(port=5000)
HMAC-подпись защищает от подделки Webhook’ов. Настройте SECRET_KEY в личном кабинете.
Шаг 4: Интеграция плагинов (альтернатива API)
Если вы работаете с CMS, Heleket предлагает плагины, которые упрощают процесс:
-
WooCommerce: Установите плагин из репозитория, введите API-ключ и выберите валюты (BTC, ETH, USDT).
-
WHMCS: Подходит для биллинга, поддерживает инвойсы и автоконвертацию.
-
XenForo: Полезно для форумов, где нужна оплата подписок.
Установка занимает 5–10 минут: скачайте плагин, загрузите в CMS, настройте ключи и callback. Например, для WooCommerce:
-
В админке WordPress выберите «Плагины → Добавить».
-
Загрузите heleket-woocommerce.zip.
-
Активируйте и введите API-ключ.
Плагины удобны для прототипов, но API даёт больше контроля.
Шаг 5: Массовые выплаты
Для проектов, где нужно платить партнёрам (например, в игровых платформах), Heleket поддерживает массовые выплаты через эндпоинт POST /v1/batch_payments. Пример:
payload = { "payments": [ {"address": "0x123...abc", "amount": 50, "currency": "USDT"}, {"address": "0x456...def", "amount": 75, "currency": "USDT"} ], "auto_withdraw": True # Автоматический вывод } response = requests.post(f"{BASE_URL}/batch_payments", json=payload, headers=headers) print(response.json())
Позволяет отправить до 100 выплат за раз.
Шаг 6: Тестирование и запуск
-
Используйте тестовый API-ключ (режим песочницы) для проверки запросов.
-
Протестируйте callback’ы с помощью инструментов вроде ngrok.
-
Проверьте обработку ошибок (например, неверный адрес кошелька).
-
Переключитесь на боевой ключ после успешных тестов.
Документация Heleket включает Postman-коллекцию для упрощения тестирования.
Альтернативные способы: H2H и инвойсы
Помимо API и плагинов, Heleket поддерживает:
-
Host-to-Host (H2H): Кастомная форма оплаты, где вы отправляете данные напрямую на сервер Heleket. Подходит для высоконагруженных систем.
-
Статические кошельки: Генерация уникального адреса для каждого клиента. Пример кода для QR-кода:
const QRCode = require("qrcode"); const address = "0x789...xyz"; QRCode.toDataURL(`bitcoin:${address}?amount=0.001`, (err, url) => { console.log(url); // Отобразите QR-код на сайте });
-
Инвойсы: Создание ссылок на оплату через API или личный кабинет. Полезно для разовых транзакций.
Дополнительные методы обеспечивают гибкость, но API остаётся самым мощным инструментом.
Полезные ссылки:
-
Примеры кода на GitHub (предполагаемый репозиторий)
ссылка на оригинал статьи https://habr.com/ru/articles/900220/
Добавить комментарий