Варианты использования
CryptumPay можно интегрировать по-разному в зависимости от вашей бизнес-модели. Выберите подход, который лучше всего подходит вашим задачам — от простых донатов до сложных e-commerce флоу.
Донаты, пополнение счёта
Тип: Заказы с произвольной суммой
Подходит для: Донаты, пополнение баланса в азартных играх, pay-what-you-want ценообразование, чаевые.
Заказы создаются на стороне клиента. Пользователь сам вводит сумму оплаты.
Пример:
<div
class="cryptumpay-auto-button-v1"
data-project-id="abc12345-1234-5678-9abc-123456789def"
data-project-order-title="Донат"
data-project-order-description="Поддержите наш проект"
></div>Особенности:
- Бэкенд не нужен — заказы создаются полностью в браузере
- Простейшая интеграция — просто добавьте HTML, JavaScript не нужен
- Пользователь выбирает сумму — идеально для гибкого ценообразования
- Мгновенный старт — начните принимать платежи за несколько минут
E-commerce
Тип: Заказы с фиксированной суммой
Подходит для: Товары в интернет-магазине, подписки, услуги с фиксированной стоимостью.
Заказ создаётся в момент нажатия пользователем кнопки оплаты. Это позволяет пользователю выбрать опции, тарифный план или настроить покупку на вашем сайте, затем нажать кнопку — вы создаёте заказ с итоговой суммой, и пользователь сразу видит форму оплаты с правильной ценой.
Идеально для сайтов без корзины — просто выбор плана и кнопка оплаты.
Заказы всегда создаются через ваш бэкенд с точными суммами.
Пример:
<div id="payment-button"></div>document.addEventListener('CryptumPay:ready', (event) => {
const button = new CryptumPay.Button('payment-button');
button.setOptions({
projectId: 'abc12345-1234-5678-9abc-123456789def'
});
button.onCreateOrder(async () => {
// ваш бэкенд создаёт заказ с фиксированной суммой
const response = await fetch('/api/create-order', {
method: 'POST',
body: JSON.stringify({})
});
const data = await response.json();
return data.id;
});
});Необходима интеграция с бэкендом
Создавать заказы можно через:
- Бэкенд с @cryptumpay/node-sdk
- Консоль мерчанта вручную
- Прямые вызовы API
Особенности:
- Цена контролируется сервером — вы указываете точные суммы на бэкенде
- Полный контроль — проверка наличия товара, скидок, прав доступа
- Безопасность — манипуляция ценой с клиента невозможна
- Лучшая конверсия — модальное окно удерживает пользователя на сайте
Произвольная бизнес-логика
Тип: Предварительно созданные заказы
Подходит для: Страницы счетов, чекаут-флоу, восстановление заброшенных заказов, произвольные бизнес-процессы.
Вы создаёте заказы на бэкенде в удобный момент, а затем отображаете кнопку оплаты, которая сразу открывает существующий заказ.
Пример:
<div
class="cryptumpay-auto-button-v1"
data-project-id="abc12345-1234-5678-9abc-123456789def"
data-order-id="11280ee0-fc4b-4616-b0bb-5751128b76fb"
></div>Особенности:
- Код на JavaScript не нужен — только два data-атрибута
- Максимальная гибкость — создавайте заказы по любой бизнес-логике
- Восстановление заказов — возобновляйте брошенные платежи по существующему Order ID
- Асинхронные флоу — создание заказа не зависит от нажатия кнопки
Без виджета
Тип: Платёжные ссылки
Подходит для: Email-инвойсы, мессенджеры, SMS-уведомления или когда модальное окно не подходит.
Виджет использовать необязательно. Просто создайте заказ на бэкенде (как описано выше) и отправьте пользователю ссылку на платёжный шлюз.
Формат платёжной ссылки:
https://pay.cryptumpay.com/m/${order.id}Особенности:
- Интеграция виджета не нужна — создайте заказ и отправьте ссылку
- Работает везде — email, SMS, мессенджеры, QR-коды
- Конверсия ниже — пользователь покидает сайт (полный редирект)
White-label / нативное приложение
Тип: Полностью через API, без редиректа и без виджета
Подходит для: Мобильных приложений и других нативных клиентов, где виджет не встроить и нет желания уводить пользователя на внешнюю страницу.
И платёжные ссылки, и виджет рассчитаны на браузер. Если ваша интеграция — нативное приложение, есть третий вариант: постройте собственный экран выбора валюты/сети на основе GET /v1/currencies, а затем создайте заказ с выбранной клиентом сетью прямо со своего бэкенда — одним вызовом.
Пример:
// 1. Показываем пользователю пикер сети, построенный на живых данных
const { data: currencies } = await client.getCurrencies();
// 2. Пользователь выбирает сеть, бэкенд создаёт заказ уже с ценой в крипте
const response = await client.createOrder({
title: 'Заказ #12345',
description: 'Оформление заказа',
cryptoCurrency: 'usdt',
cryptoBlockchain: 'tron',
cryptoAmount: '50.00',
projectDataOrderId: 'internal-order-123',
});
// 3. В ответе уже есть адрес для депозита и точная сумма
const { depositAddress, cryptoAmount } = response.data.customerOrder;Особенности:
- Ни виджета, ни редиректа — весь флоу остаётся внутри UI вашего приложения
- Один вызов — мерчантский ордер и адрес для депозита создаются вместе, когда сеть уже известна
- Цена в крипте или в фиате — используйте
cryptoAmount, если ваш UI сначала собирает сеть, иначеfiatAmount - Можно перечитать — GET /v1/orders/:orderId в любой момент вернёт полный адрес/статус депозита, так что приложение восстановит состояние после закрытия и повторного открытия
Следующие шаги
Теперь, когда вы разобрались с вариантами использования, изучите детали реализации:
- Инициализация кнопки — способы создания кнопок
- Интеграция с бэкендом — создание заказов на сервере