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

если для проекта не подходят типовые решения - то этот раздел для вас
Интеркардс - программно-технический комплекс, позволяющий реализовать полный цикл оплаты выставленного счета, товара или услуги с использованием электронных платежных средств в сети интернет.
В данном документе описан общий порядок взаимодействия с системой, форматы запросов для управления платежными транзакциями, рассмотрены дополнительные возможности платформы, а также приведены ответы на часто задаваемые вопросы.
Документ предназначен для разработчиков, которым необходимо организовать прием платежей на сайте без использования типовых решений для CMS.

Как работает прием платежей?

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

Рассмотрим каждый этап более детально.

Заказ

Покупатель делает заказ на сайте, в приложении, выбирая товары из корзины или заполняя форму. Кроме того заказ можно оформить в офлайне: например, по телефону или электронной почте.
В большинстве случаев каждый заказ на оплату товаров или услуги имеет свой уникальный идентификатор. Это может быть номер заказа, номер договора, номер лицевого счета и т.д.
Идентификатор заказа может быть использован при обмене сведениями с платежной системой.

Инициализация платежа

Торговая площадка (сайт, интернет-магазин или приложение) посылает запрос на совершение оплаты. В случае успеха пользователь будет переадресован на страницу ввода данных карты.
Для инициализации заказа необходимо передать методом POST параметры заказа на url платежного API.
Пример вызова метода Инициализации платежа содержит минимум обязательных полей:
token - идентификатор Торговой площадки. Его можно получить в Личном кабинете платежной системы.
order_id - идентификатор Заказа.
sum - сумма платежа в рублях, разделитель - точка.
email - email, на который будет выслан чек

Код формы приведен ниже:
<form id="payment" method="post" action ="intercards-api-url">
<input type="hidden" id="token" name="token" value="merchant-token-here"/>
<input type="hidden" id="order_id" name="order_id" value="order_id-token-here"/>
<input type="hidden" id="sum" name="sum" value="payment-sum"/>
<input type="hidden" id="email" name="email" value="customer-email"/>
</form>
Данна форма может быть отправлена по нажатию кнопки "Оплатить"...
<form id="payment" method="post" action ="intercards-api-url">
...
<button type="submit">Оплатить</button>
</form>
... или с использованием JavaScript
<script type="text/javascript">
var form = document.getElementById('payment');
form.submit();
</script>
После отправки формы пользователь будет переадресован на безопасную страницу для ввода реквизитов карты или оплаты с использованием Apple Pay, Samsung Pay и т.д. После авторизации платежа откроется страница с результатами оплаты, с которой можно настроить переход по ссылке или автоматический редирект на страницу с сообщением об успешной или неуспешной оплаты.

Уведомление об оплате

После успешной транзакции Платежная система должна уведомить Торговую точку о завершении оплаты.
Зачастую это необходимо, потому что автоматизированная система магазина самостоятельно управляет статусами Заказа. Например, интернет-магазин передает Заказ в доставку. Или биллинговая система Интернет-провайдера автоматически пополняет баланс лицевого счета.

В системе поддерживается несколько способов подтверждения: Webhook для автоматизированных систем и email уведомления для владельцев. Одновременно можно задействовать несколько способов уведомлений.

Как работает Webhook

Webhook - это механизм отправки уведомлений при наступлении в системе события, на которое подписано клиентское приложение или автоматизированная система.
1
Запрос в систему продавца
После успешной оплаты Платежная система направляет в систему продавца запрос с подтверждением факта оплаты Заказа.
2
Ответ системы продавца
Система продавца регистрирует у себя факт оплаты и сообщает платежной системе результат.
3
Завершение обмена данными
Получив ответ от системы Продавца, Платежная система записывает в журнал результат обмена данными и завершает работу

Стандартный Webhook

Стандартный Webhook реализован в форме http-запроса, отправляемого методом POST на URL, предоставленный торговой точкой. В запрос входят следующие поля:
order_id - номер заказа
sum - сумма платежа
sign - подпись запроса - является результатом md5-функции от конкатенации {order_id}{sum}{secret}, где secret - кодовое слово, указанное в настройках Торговой точки в Личном кабинете Платежной системы.
Подпись запроса является мерой безопасности, от подделки запроса.

В ответ Торговая точка должна направить ответ text/html "OK {md5(order_id)}"

Webhook для CMS

Все CMS, для которых мы предлагаем бесплатные модули уже настроены на получение Webhook и работы со статусами Заказов. Отдельная настройка на стороне CMS не требуется.

Нестандартный Webhook

При необходимости мы реализуем нестандартный Webhook в соответствии с представленным вами протоколом взаимодействия. Это бесплатно, но требует дополнительного времени на разработку, тестирование и внедрение.

Мы поддерживаем http(s)-запросы get/post c необходимым набором заголовков и данные в форматах:
  • application/x-www-form-urlencoded
  • json
  • xml
Остальные способы взаимодействия нужно предварительно согласовать со службой технической поддержки.

Email уведомление

В некоторых случаях Торговой точке достаточно простого email-уведомления. Адрес(а) для уведомлений настраиваются в Личном кабинете и не требуют навыков программирования.