Перейти к содержанию

Платежи с предавторизацией

Проведение платежа с предавторизацией через платёжную страницу KVELL.

Отличие от стандартной платёжной страницы: открывается сразу форма ввода данных карты, без выбора способа оплаты. Карта не сохраняется.

Проведение платежа

URL

Метод: GET или POST

  • Production: https://pay.kvell.group/checkout/preauthorize
  • Stage: https://pay.stage.kvell.group/checkout/preauthorize

Параметры запроса

Название
Тип Обязательно Описание
api_key string Да Уникальный идентификатор магазина
signature string Да Подпись
amount integer Да Сумма в копейках
description string Да Описание к транзакции
transaction string Да Уникальный номер транзакции на стороне мерчанта
success_url string Да Ссылка при успешном выполнении запроса
fail_url string Да Ссылка при неверном выполнении запроса
auto_return string Нет Автоматический редирект на success_url или fail_url после оплаты. Задается в секундах. Если передать значение больше 0, то редирект произойдет через N-секунд. Если значение равно 0, то редирект произойдет сразу.
expires_at integer Нет Дата и время истечения срока жизни платежа в формате UNIX timestamp в секундах
extra_data json Нет Дополнительная информация
fiscal_data json Нет Фискализация чека по 54-ФЗ
split_data array Нет Сплитование платежей

Формирование подписи

Подпись signature формируется конкатенацией api_key, transaction, amount и secret_key. Формируется sha256 от полученной строки:

sha256({api_key}{transaction}{amount}{secret_key})

Если параметр expires_at передан, то он учитывается при формировании подписи.

sha256({api_key}{transaction}{amount}{expires_at}{secret_key})

где secret_key - секретный ключ, который находится в настройках магазина мерчанта.

Примеры запросов

Запрос GET

https://pay.kvell.group/checkout/preauthorize?api_key={api_key}&signature={signature}&amount={amount}&description={description}&transaction={transaction}&success_url={success_url}&fail_url={fail_url}&auto_return={auto_return}&extra_data={extra_data}&fiscal_data={fiscal_data}&split_data={split_data}

Запрос POST

<form action="https://pay.kvell.group/checkout/preauthorize" method="POST">
    <input type="hidden" name="api_key" value="3a8c82d6-d2c6-4165-9a6b-ab3f14d965ae">
    <input type="hidden" name="amount" value="10000">
    <input type="hidden" name="description" value="Продукт №1">
    <input type="hidden" name="signature" value="afc09ed74d83849d44c1f1906b10d20c147bf0eb25da940c020c980b3b44ca38">
    <input type="hidden" name="success_url" value="http://yoursite.com/success">
    <input type="hidden" name="fail_url" value="http://yoursite.com/fail">
    <input type="hidden" name="transaction" value="fbfe9f88-d5c7-4994-aed6-ee8003f4f342">
    <input type="submit" value="Оплатить">
</form>

Запрос POST с JSON

При отправке данных в формате JSON необходимо указать заголовки Accept: application/json и Content-Type: application/json. В ответ придет временная ссылка для редиректа пользователя на платежную страницу.

Пример запроса:

curl -X POST https://pay.kvell.group/checkout/preauthorize \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "api_key": "3a8c82d6-d2c6-4165-9a6b-ab3f14d965ae",
    "amount": 10000,
    "description": "Продукт №1",
    "signature": "afc09ed74d83849d44c1f1906b10d20c147bf0eb25da940c020c980b3b44ca38",
    "success_url": "http://yoursite.com/success",
    "fail_url": "http://yoursite.com/fail",
    "transaction": "fbfe9f88-d5c7-4994-aed6-ee8003f4f342"
  }'

Пример ответа:

{
  "url": "https://pay.kvell.group/checkout/preauthorize/90afde444c6d15c83289ece14e90b7e2927a3a4e"
}

Колбэки

Колбэки отправляются так же, как для стандартного платежа. Подробнее см. раздел Колбэки.