Skip to content

Варианты использования ​

CryptumPay можно интегрировать по-разному в зависимости от вашей бизнес-модели. Выберите подход, который лучше всего подходит вашим задачам — от простых донатов до сложных e-commerce флоу.

Донаты, пополнение счёта ​

Тип: Заказы с произвольной суммой
Подходит для: Донаты, пополнение баланса в азартных играх, pay-what-you-want ценообразование, чаевые.

Заказы создаются на стороне клиента. Пользователь сам вводит сумму оплаты.

Пример:

html
<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 ​

Тип: Заказы с фиксированной суммой
Подходит для: Товары в интернет-магазине, подписки, услуги с фиксированной стоимостью.

Заказ создаётся в момент нажатия пользователем кнопки оплаты. Это позволяет пользователю выбрать опции, тарифный план или настроить покупку на вашем сайте, затем нажать кнопку — вы создаёте заказ с итоговой суммой, и пользователь сразу видит форму оплаты с правильной ценой.

Идеально для сайтов без корзины — просто выбор плана и кнопка оплаты.

Заказы всегда создаются через ваш бэкенд с точными суммами.

Пример:

html
<div id="payment-button"></div>
javascript
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;
  });
});

Необходима интеграция с бэкендом

Создавать заказы можно через:

Особенности:

  • Цена контролируется сервером — вы указываете точные суммы на бэкенде
  • Полный контроль — проверка наличия товара, скидок, прав доступа
  • Безопасность — манипуляция ценой с клиента невозможна
  • Лучшая конверсия — модальное окно удерживает пользователя на сайте

Произвольная бизнес-логика ​

Тип: Предварительно созданные заказы
Подходит для: Страницы счетов, чекаут-флоу, восстановление заброшенных заказов, произвольные бизнес-процессы.

Вы создаёте заказы на бэкенде в удобный момент, а затем отображаете кнопку оплаты, которая сразу открывает существующий заказ.

Пример:

html
<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, а затем создайте заказ с выбранной клиентом сетью прямо со своего бэкенда — одним вызовом.

Пример:

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

Следующие шаги ​

Теперь, когда вы разобрались с вариантами использования, изучите детали реализации:

Распространяется под лицензией MIT.