Пример криптоплатежа на JavaScript: рабочий поток сегодня
Пример криптоплатежа на JavaScript: рабочий поток на живом API v1, вызов с сервера и webhook, а также запланированный вызов SDK с пометкой roadmap.
Этот пример криптоплатежа на JavaScript показывает поток, который работает сегодня: сервер создаёт платёж через живой API v1, браузер переходит на платёжную страницу, а webhook подтверждает заказ. Вызов Low-Code SDK в конце — только предпросмотр из дорожной карты.
Поток в четыре шага
Клиент нажимает «оплатить», сервер создаёт платёж, браузер переходит на redirectUrl, а webhook подтверждает финальный статус. Каждый шаг — обычный HTTP-вызов или редирект, поэтому пример не требует особой библиотеки.
Вызов сервера на JavaScript
Обработчик на Node.js отправляет POST /api/v1/payment с заголовком x-api-key, номером заказа и ценой в USD, а затем возвращает браузеру redirectUrl. Ключ никогда не покидает сервер.
x-api-key: sk_live_…
{
"id": "order_1024",
"price": 149.99,
"paymentSystemId": 12
}
// 201 Created
{
"data": {
"id": "8f3k2a1c",
"redirectUrl": "https://my.qvard.com/pay/8f3k2a1c"
},
"code": 201,
"message": "success",
"status": true
}Сторона браузера
Странице нужна только кнопка, которая вызывает ваш обработчик и затем переходит по полученному redirectUrl. В браузере нет ни ключа, ни логики суммы.
Обработчик webhook
Endpoint webhook читает id и status, проверяет заголовок x-api-key и помечает заказ оплаченным при статусе paid. Делайте обработчик безопасным при повторе, потому что одно и то же сообщение может прийти дважды.
x-api-key: sk_live_…
{ "id": "order_1024", "status": "paid" }Запланированный вызов SDK
Ожидается, что Low-Code SDK из дорожной карты откроет тот же поток со страницы одним вызовом. Это предпросмотр невыпущенного API, показанный только для ориентира, и его нельзя использовать в продакшене.
Проверка перед запуском
Создайте тестовый платёж, оплатите его на платёжной странице и убедитесь, что webhook получает финальный статус и помечает заказ.
// ROADMAP preview: the SDK is not released yet.
QvardCheckout.open({ amount: 149.99, currency: "USD", orderId: "order_1024" });FAQ
Использует ли этот пример SDK?
Нет. Рабочий поток использует обычные HTTP-вызовы и редирект. Вызов SDK — только предпросмотр из дорожной карты.
Можно ли использовать вызов Qvardплатёжная страница.open() в продакшене?
Нет. SDK ещё не выпущен. Используйте API, redirectUrl и webhook.
Где должен храниться ключ API?
Только на сервере. В браузер попадает лишь redirectUrl.
Как понять, что платёж завершён?
Только когда webhook передаёт id и статус paid.

