Разработчикам

Встроенный виджет

Покупатель платит, не покидая ваш домен. Вы создаёте счёт через API и показываете форму оплаты CryBit на своей странице.

1. Создайте счёт

Используйте тот же POST /api/v1/payments. В ответе всегда есть confirmation.confirmation_token, равный uuid счёта. Поле confirmation в запросе необязательно.

2. Подключите скрипт и контейнер

HTML

<script src="https://pay.crybit.net/widget.js"></script>
<div id="payment-form"></div>

3. Покажите форму

JavaScript

const checkout = new CryBitCheckout({
  confirmation_token: 'INVOICE-UUID',
  return_url: 'https://merchant.example/thanks',
  lang: 'en',
  error_callback: (err) => console.log(err),
})

checkout.render('payment-form').then(() => { /* the form is shown */ })
checkout.on('success', () => { /* status paid: confirm the order by webhook or GET */ })
checkout.on('fail', () => { /* expired, cancelled or refunded */ })
checkout.on('complete', () => checkout.destroy())

Модальное окно

Если контейнера на странице нет, откройте виджет поверх сайта с customization: { modal: true } (или modal: true) и вызовите checkout.render() без аргументов.

Параметры и события

ПараметрСмысл
confirmation_tokenОбязательно. uuid счёта (алиасы: uuid, invoice_uuid).
return_urlКуда уйдёт покупатель после оплаты.
langЯзык интерфейса; иначе язык браузера.
modal / customization.modaltrue — всплывающее окно вместо контейнера.
error_callback, success_callbackВызываются при ошибке (нет токена, нет контейнера) и когда статус стал paid.

События: ready, status, success, fail, complete, close, error. Методы: render(id), on(event, fn), destroy().

Подтверждайте заказ по вебхуку или чтением статуса. Событие виджета нужно только для интерфейса.

Вопросы и ответы

Можно ли протестировать виджет?

Да. В тестовом мерчанте в виджете есть кнопка «Отметить оплаченным», а баланс не пополняется.

Ещё

Получите API-ключ