Объяснять, зачем нужны платежи в криптовалюте, в 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 (предполагаемый репозиторий)