Простой способ для приема оплаты онлайн
Настройте платежный виджет и принимайте оплаты от клиентов. Для настройки предлагается несколько вариантов платежного виджета. Посмотрите как это работает уже сейчас! После тестирования — просто удалите код платежного виджета на вашем сайте
Для тестирования используйте данные тестовой карты:
Номер |
2200 4804 0000 0319 |
Срок действия |
05/28 |
CVV2 |
055 |
Платежная форма
Сформируйте тестовую платежную форму и вставьте полученный код на сайт
Вы можете создать форму с ручным вводом суммы заказа, либо с фиксированной суммой
<link rel="stylesheet" href="https://public.api.skbbank.ru/acq/styles.css">
<script src="https://public.api.skbbank.ru/acq/script.js"></script>
<div class="container-fluid">
<form id="PaymentForm" onsubmit="RedirectToBank();return false;" autocomplete="off">
<input class="PaymentFormRow" type="hidden" id="lang" value="RU">
<input class="PaymentFormRow" type="hidden" id="merch_id" value="412382BC3BFEC5B9874F1ACB563D15C6">
<div class="PaymentFormCard">
<label for="amount">Сумма заказа</label>
<div class="inputWithlogo payClass">
<input class="PaymentFormRow" type="tel" placeholder="Сумма *" required id="amount"
pattern="\d+(([.,]\d{2})|([.,]\d{1}))?" onfocus="changeBorderInput()" title="Пример: 20.5 ₽; 12.45 ₽; 25 ₽" >
<p>₽</p>
</div>
<label for="order_id" class="">Номер заказа</label>
<div class="inputWithlogo orderClass" data-reg="">
<input class="PaymentFormRow" type="text" placeholder="Номер" id="order_id" pattern="\d+"
onfocus="changeBorderInput()" title="Номер заказа должен состоять только из цифр">
<div class="hint" data-tooltip="Номер артикула товара. (заполните, если Вам это известно)">?</div>
</div>
<div class="tarea">
<textarea class="PaymentFormRow" type="text" placeholder="Краткое описание заказа *" id="desc" maxlength="30"
oninput="validateDesc()" title="Описание заказа, должно быть меньше 30 символов" required></textarea>
</div>
<div class="descLength">30/30</div>
</div>
<div class="actionBtns">
<input class="PaymentFormSubmitBtn" type="submit" value="Оплатить" id="submitBtn" >
</div>
</form>
</div>
Для проверки можно ввести данные любой карты, срок которой не истек, например:
номер - 2200480400000319, срок действия - 05/28, CVV2 - 055.
Операция пойдёт через тестовый магазин — списания денежных средств не будет.
Платежная кнопка
Создайте кнопку на каждый товар и принимайте платежи от клиентов в один клик. Введите сумму в поле и получите готовый код кнопки в фирменном стиле Делобанка
<link rel="stylesheet" href="https://public.api.skbbank.ru/acq/styles.css">
<script src="https://public.api.skbbank.ru/acq/script.js"></script>
<form id="PaymentForm" onsubmit="RedirectToBank();return false;">
<input class="PaymentFormRow" type="hidden" id="lang" value="RU">
<input class="PaymentFormRow" type="hidden" id="merch_id" value="412382BC3BFEC5B9874F1ACB563D15C6">
<input class="PaymentFormRow" type="hidden" value="0" id="amount">
<div class="actionBtns">
<input class="PaymentFormSubmitBtn" type="submit" value="Оплатить" id="submitBtn">
</div>
</form>
Платёжная кнопка без фирменного стиля
Все на сайте в едином стиле? Тогда этот вариант — Ваш. Идеально подходит для конструкторов сайтов. Чтобы инициировать платеж на определенную сумму, достаточно просто привязать к кнопке ссылку
Введите сумму в поле и получите пример готовой ссылки для инициализации платежа
https://3ds1.sinara.ru/page/?lang=RU&merch_id=412382BC3BFEC5B9874F1ACB563D15C6&o.amount=0&o.desc=-&back_url_s=-&back_url_f=-
Как подключить интернет-эквайринг через платежный виджет?
Требуется большая гибкость? Воспользуйтесь функциональным API
Подготовка к реализации взаимодействия
Оплата банковской картой на Вашем сайте осуществляется в три этапа:
Вы помещаете идентификатор платежа и другие параметры в особым образом сформированный URL и перенаправляете браузер Вашего клиента по данному URL на сервер Банка – https://3ds1.sinara.ru/.
Банк запрашивает у Вашего сайта параметры платежа (сумму, описание и пр.) по его идентификатору из Этапа 1. В случае успеха Банк запрашивает у Вашего клиента данные о его банковской карте и авторизует необходимую сумму в банке клиента.
Банк передаёт Вашему сайту результаты оплаты.
- Для осуществления безопасных платежей Вашему сайту необходимо поддерживать протокол HTTPS. Пожалуйста, обратитесь к администратору Вашего сайта, хостинга или сервера. Бесплатный TLS-сертификат для HTTPS Вы можете получить в компании «Let’s Encrypt».
- Для обеспечения безопасности взаимодействия между Банком и Вашим сайтом, Вам необходимо защитить участвующие в данном взаимодействии скрипты логином и паролем для HTTP Basic Access-аутентификации, описанной в RFC7617. Логин и пароль должны быть переданы в Банк. Пожалуйста, обратитесь к администратору сайта или в службу поддержки Вашего хостинга для помощи с настройкой HTTP-аутентификации.
Осуществляется переадресацией Вашего клиента на сайт Банка с передачей GET-параметров в URL.
Формат URL:
Пример URL:
Обязательные поля:
Уникальный идентификатор Вашего сайта (интернет-магазина) в системе Банка. Выдаётся Банком после обработки Вашей заявки на подключение.
Примеры:
merch_id=3C6093D717DE771BC5EE7EA89B4EBB3A
…
o.param_n
Order Params. Набор параметров, однозначно идентифицирующих платёж в базе данных Вашего магазина в формате o.имя_параметра. Имя параметра после точки может быть любым. Вы должны передать в URL не менее одного o-параметра. Количество o-параметров ограничено длиной URL. Банк будет передавать Вам данные параметры на Этапе 2, при проверке платежа. Ваш сайт должен быть готов определить сумму и описание платежа на этапе проверки, основываясь на полученных Order Params.
Примеры:
o.order_id=109CFCED-EA95-480C-902D-A8749E314A65 o.id=1234567890&o.hash=01b307acba4f54f55aafc33bb06bbbf6ca803e9a
Адрес, куда перенаправляется клиент в случае успешного проведения платежа, после нажатия на кнопку «Вернуться в магазин» на платежной странице с результатами платежа. ВАЖНО: Во избежание проблем с обработкой платежа, передавайте GET-параметры в URL Encoded формате. См. https://www.w3schools.com/tags/ref_urlencode.asp
Примеры:
back_url_s=https%3A%2F%2Fmerchant.ru%2Fpayment%2Fsucceeded%3Forder_id%3D109CFCED-EA95-480C-902D-A8749E314A65
Адрес, куда перенаправляется клиент в случае неудачного проведения платежа, после нажатия на кнопку «Вернуться в магазин» на платежной странице с результатами платежа. ВАЖНО: Во избежание проблем с обработкой платежа, передавайте GET-параметры в URL Encoded формате. См. https://www.w3schools.com/tags/ref_urlencode.asp
Примеры:
back_url_f=https%3A%2F%2Fmerchant.ru%2Fpayment%2Fsucceeded%3Forder_id%3D109CFCED-EA95-480C-902D-A8749E314A65
Опциональные параметры:
Язык платёжной страницы. Двухсимвольный код в соответствии со стандартом ISO 639-1. Поддерживается «ru» и «en». По умолчанию «ru».
Примеры:
lang=ru
lang=en
После получения запроса на инициализацию платежа, Банк формирует HTTP GET- запрос проверки платежа (CheckPaymentAvailRequest). Запрос отправляется по заданному при регистрации статическому URL. Ваш сайт должен быть готов получать запросы по указанному URL.
Формат URL:
Пример URL:
Обязательные поля:
Уникальный идентификатор транзакции в системе Банка.
Примеры:
trx_id=21AEE5C7B48A9BB56B8C422A189505DF
Из запроса на инициализацию платежа (lang). Если присутствовал.
Примеры:
lang_code=RU
Уникальный идентификатор Вашего сайта (интернет-магазина) в системе Банка. Выдаётся Банком после обработки Вашей заявки на подключение.
Примеры:
merch_id=3C6093D717DE771BC5EE7EA89B4EBB3A
Адрес, куда перенаправляется клиент в случае неудачного проведения платежа, после нажатия на кнопку «Вернуться в магазин» на платежной странице с результатами платежа. ВАЖНО: Во избежание проблем с обработкой платежа, передавайте GET-параметры в URL Encoded формате. См. https://www.w3schools.com/tags/ref_urlencode.asp
Примеры:
back_url_f=https%3A%2F%2Fmerchant.ru%2Fpayment%2Fsucceeded%3Forder_id%3D109CFCED-EA95-480C-902D-A8749E314A65
Из запроса на инициализацию платежа.
Примеры:
o.order_id=109CFCED-EA95-480C-902D-A8749E314A65.
Дата выполнения запроса в формате «yyyyMMdd HH:mm:ss»
Примеры:
ts=20170410+10%3A10%3A17
Банк ожидает от Вашего сайта XML с описанием и суммой платежа, либо с описанием отказа, если Вы не разрешаете этот платёж. Во избежание ошибок валидации на стороне систем Банка рекомендуется в названии XML тега использовать только строчные буквы. Смотрите описание элементов XML ниже.
Пример XML-ответа с разрешением оплаты:
<payment-avail-response>
<result>
<code>1</code>
<desc>Payment is available</desc>
</result>
<purchase>
<shortDesc>Пополнение счёта</shortDesc>
<longDesc>Пополнение лицевого счёта абонента +79123456789</longDesc>
<account-amount>
<id>668FA7E2855B4715EBA229747A8437C3</id>
<amount>15500</amount>
<currency>643</currency>
<exponent>2</exponent>
</account-amount>
</purchase>
</payment-avail-response>
Пример XML-ответа с запретом оплаты:
<payment-avail-response>
<result>
<code>2</code>
<desc>Payment is unavailable: Wrong payment params</desc>
</result>
</payment-avail-response>
Описание элементов Вашего XML-ответа:
Результат проверки платежа в Вашем магазине.
Возможные значения:
1 – Успешная проверка. Продолжить оплату.
2 – Неуспешная проверка. Прервать процесс оплаты.
Краткое описание результатов проверки. Не более 125 символов.
При result.code=1. Краткое описание платежа. Не более 30 символов.
При result.code=1. Полное описание платежа. Не более 125 символов. Это описание отображается клиенту на странице ввода реквизитов банковской карты.
Сумма к оплате. Отображается на странице ввода реквизитов, списывается с банковской карты Вашего клиента. ВАЖНО: Сумма платежа указывается в минимальных единицах валюты платежа. Для российских рублей сумма указывается в копейках. Для суммы платежа в 1 руб. в указанном элементе должно быть значение 100. Принимаются целые положительные числа.
Код валюты платежа по ISO 4217. Всегда 643 для российских рублей.
Для российских рублей всегда 2.
Уникальный идентификатор терминала, который нужен при проведении расчётов в системах Банка. Выдаётся Банком после обработки Вашей заявки на подключение. Необязательный параметр при условии наличия у магазина одного терминала.
По результатам платежа Банк формирует HTTP GET-запрос на фиксацию платежа (RegisterPaymentRequest). Запрос отправляется по заданному при регистрации статическому URL. Ваш сайт должен быть готов получать запросы по указанному URL.
Формат URL:
Пример URL:
В запросе передаются параметры:
Уникальный идентификатор транзакции в системе Банка.
Примеры:
trx_id= B564B5581EA606DCE0B5CB5EDBD5840E
Уникальный идентификатор Вашего сайта (интернет-магазина) в системе Банка. Выдаётся Банком после обработки Вашей заявки на подключение.
Примеры:
merch_id=3C6093D717DE771BC5EE7EA89B4EBB3A
Результат платежа. Может принимать значения:
1 – Успешная оплата. Именно этот код подтверждает успешность платежа Вашего клиента.
2 – Неуспешная оплата. На карте клиента недостаточно средств, карта блокирована или её реквизиты введены неправильно, и т.п.
(пока магазин находится в тестовом режиме, результат платежа всегда будет таким; при этом на странице с результатами платежа
будет соответствующая приписка)
Расширенный код результата. Необязательный параметр. Возможные значения:
-2 – Отказ в проведении платежа.
-3 – Ошибка при проведении платежа.
-4 – Успешный платеж отменен по инициативе магазина на этапе фиксации платежа.
2 – Магазин отказался проводить платеж на этапе проверки.
4 – Произошла ошибка при взаимодействии с магазином на этапе проверки платежа.
21 – Проверка платежа в магазине не выполнялась. Возможно магазин, или биллинг были заблокированы.
53 – Транзакция завершилась по таймауту, так как пользователь по каким-то причинам отказался продолжать платеж.
54 – Пользователь сознательно выбрал отмену платежа.
Сумма платежа в минимальных единицах валюты. Для российского рубля – в копейках.
Примеры:
amount=20900
Идентификатор виртуального счета в системе Банка, по которому производилась оплата.
Примеры:
account_id=2C28C7C1959D0EE0D0877887047E0FB6
Параметры платежа из запроса на инициализацию.
Примеры:
o.order_id=25
Код авторизации из Процессингового центра. Передаётся только при успешной оплате.
Примеры:
p.authcode=100549
Дата/время операции в Процессинговом центре в формате «MMddHHmmss».
Примеры:
p.transmissionDateTime=0417131256
Результат 3-D Secure-аутентификации:
Y – результат успешный
N – результат неуспешный
Примеры:
p.isFullyAuthenticated=N
Частичный номер карты, по которой производилась оплата.
Примеры:
p.maskedPan=459226xxxxxx4562
Имя держателя карты, введённое на странице реквизитов банковской карты при оплате.
Примеры:
p.cardholder=IVAN IVANOV
Необязательный параметр. Идентификатор платежа в Процессинговом центре.
Примеры:
p.rrn=001078490029
Дата выполнения запроса в формате «yyyyMMdd HH:mm:ss»
Примеры:
ts=20170417+13%3A12%3A57
ЭЦП банка-эквайера под запросом в формате PEM (кодированный Base64); подписывается весь сформированный URL начиная c “https://” (включительно) вплоть до “&signature=” (не включая “&signature=”)
В ответ Банк ожидает от Вашего сайта XML с результатами фиксации платежа в Вашей системе. Во избежание ошибок валидации на стороне систем Банка рекомендуется в названии XML тега использовать только строчные буквы.
Пример XML-ответа об успешной фиксации платежа:
<register-payment-response>
<result>
<code>1</code>
<desc>Payment successfully registered</desc>
</result>
</register-payment-response>
Банк рекомендует устанавливать в ответе заголовок Content-Type со значением application/xml.
Параметры XML-ответа на запрос фиксации платежа:
Результат обработки запроса на фиксацию платежа. Возможные значения:
1 – Успешная обработка. Результат платежа зафиксирован в интернет-магазине.
2 – Невозможно зафиксировать результат платежа. Банку необходимо повторить запрос.
Описание результата обработки запроса на фиксацию платежа. Не более 125 символов.
ВАЖНО: Положительный ответ (result.code=1) означает, что результат платежа обработан Вашим интернет-магазином. Это не зависит от того, была ли одобрена оплата банковской картой – Вы должны подтвердить фиксацию платежа (одобренного или нет). В случае result.code=2 Банк будет посылать повторные запросы на фиксацию платежа в системе интернет-магазина.