29 April 2015

Автоплатеж изнутри: часть 1. Как работают рекурренты

Payler corporate blogPayment systemsAPIDevelopment for e-commerce


Привет, Хабрахабр!

Относительно недавно мы запустили услугу рекуррентных платежей и хотим поделиться с вами их внутренним устройством. По сути, рекурренты — это серия повторяющихся платежей. Принцип их работы прост: при проведении первого (родительского) платежа, в базе данных регистрируется шаблон рекуррента, которому присваивается уникальный идентификатор. Все повторные списания происходят с использованием этого шаблона — мерчант дает команду своему сервис-провайдеру, с указанием идентификатора рекуррента и суммы платежа, а сервис-провайдер инициирует списание средств с карты пользователя.

Самому пользователю достаточно один раз принять оферту, где указано, за что и с какой периодичностью будут списываться средства.

В целом, весь процесс можно разделить на два этапа — регистрация шаблона рекуррентного платежа и повторное списание регулярного платежа. Покажем на примере использования Payler Gate API:

1. Регистрация шаблона

В запросе инициализации платежа StartSession требуется задать значение необязательного параметра recurrent равным true:


В ответ на успешное выполнение транзакции придет идентификатор созданного шаблона рекуррентных платежей recurrent_template_id. Также его можно получить, выполнив запрос GetStatus, указав параметры key (идентификатор мерчанта) и order_id. Пример ответа за успешный запрос:


2. Повторное списание

После успешной регистрации шаблона можно выполнять повторные списания без участия владельца карты. Для этого нужно выполнить запрос RepeatPay, указав следующие параметры:

key — идентификатор мерчанта
order_id — идентификатор заказа в системе мерчанта
amount — сумма платежа в копейках (может отличаться от суммы первого платежа)
recurrent_template_id — идентификатор шаблона рекуррентного платежа

Пример ответа на успешный запрос:


Шаблонов можно регистрировать несколько, а информацию по каждому из них можно получить через запрос GetTemplate (обязательно с указанием идентификатора шаблона, в противном случае в ответ придет информация обо всех шаблонах, существующих у мерчанта). При успешном выполнении запроса, мерчант получит ответ, содержащий следующие параметры:

recurrent_template_id — неизменная строка
created — дата и время регистрации шаблона
card_holder — имя держателя карты, к которой привязан шабло
card_number — маскированный номер карты
expiry — срок действия карты (по умолчанию создается на весь срок действия карты)
active — активность шаблона (со значениями true или false)

И пример ответа на успешный запрос:


Кстати, активировать или деактивировать шаблон поможет запрос ActivateTemplate, в котором нужно указать всего три параметра — key, recurrent_template_id и active, со значением true если шаблон требуется активировать, или false — если деактивировать.

Как вы видите, все устроено предельно просто. Чуть позже мы продолжим раскрывать тему автоплатежей и напишем еще один пост.

Хотим отметить, что услуга рекуррентов бесплатна для наших мерчантов. На данном этапе услугу нам предоставляют Банк Русский Стандарт и Альфа Банк, но совсем скоро к им присоединятся Промсвязьбанк и Сургутнефтьгазбанк.

Будем рады вашим вопросам и комментариям!

С пожеланием отличных выходных,
Ваш Payler

Заходите к нам на Фейсбук
Tags:платежиплатежи в интернетеавтоплатежи
Hubs: Payler corporate blog Payment systems API Development for e-commerce
+6
11k 54
Comments 7