Разработчикам
Встроенный виджет
Покупатель платит, не покидая ваш домен. Вы создаёте счёт через 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.modal | true — всплывающее окно вместо контейнера. |
error_callback, success_callback | Вызываются при ошибке (нет токена, нет контейнера) и когда статус стал paid. |
События: ready, status, success, fail, complete, close, error. Методы: render(id), on(event, fn), destroy().
Подтверждайте заказ по вебхуку или чтением статуса. Событие виджета нужно только для интерфейса.
Вопросы и ответы
Можно ли протестировать виджет?
Да. В тестовом мерчанте в виджете есть кнопка «Отметить оплаченным», а баланс не пополняется.
