Расщепление платежа – это способ, при котором оплата, совершаемая потребителем, разбивается на уровне платежного агента, и он распределяет поступившие средства по поставщикам услуг.
Схема "Расщепление платежей"
1. Пользователь заходит на веб-сайт услуги, указывает сумму, которую хочет оплатить. Выбирает "оплата банковской картой".
2. Пользователь нажимает на кнопку "оплатить" и инициирует вызов платежного виджета. В клиентской части веб-сервиса формируется набор параметров вызова виджета и передаётся к серверной части.
3. На стороне платёжной платформы выполняются подготовка виджета с учётом параметров вызова.
4. На стороне платежной платформы Vepay происходит расщепление платежа (платежный агент сам задает сумму платежа на каждого партнера, указывая в параметрах его id).
5. Платёжная форма отображается в пользовательском интерфейсе. Пользователь вводит реквизиты карты для оплаты, нажимает оплатить.
6. От виджета к платёжной платформе отправляется запрос на выполнение целевого действия с учётом всех данных, введённых пользователем.
7. На стороне платёжной платформы выполняется регистрация номера карты (если требуется) и регистрация платежа. Данные передаются в платёжную среду.
8. В платёжной среде открывается страница банка-эмитента. Пользователь подтверждает платеж с помощью кода из sms. Нажимает "оплатить". Выполняются проверка карты и обработка платежа. В платёжную платформу поступает информация о результате.
9. В платёжной платформе обрабатывается итоговая информация. Происходит отправка частей платежа получателям.
10. Платежному агенту на заданный URL (если указан колбэк) отправляется программное оповещение о платеже.
11. Происходит перенаправление пользователя на страницу клиента в соответствии с результатом оплаты.
1. На метод https://api.vepay.online/merchant/pay-parts поступает запрос, формата:
{
"type":1,
"extid":"166224",
"descript":"descript..",
"successurl":"http://example.com/s.php",
"cancelurl":"http://example.com/e.php",
"postbackurl":"http://example.com/p.php",
"failurl":"http://example.com/e.php",
"timeout":50,
"fullname":"Test TEst Test1",
"document_id":"Test document",
"parts":[
{
"merchant_id":1,
"amount":800
},
{
"merchant_id":2,
"amount":200
}
]
}
2. На метод https://api.vepay.online/mfo/pay/lk-parts поступает запрос, формата:
{
"type": 3,
"extid": "641211",
"descript": "descript..",
"successurl": " http://site.ru/s",
"cancelurl": " http://site.ru/e",
"postbackurl":"http://site.ru/p",
"failurl": " http://site.ru/f",
"timeout": 50,
"fullname": "Test TEst Test1",
"document_id": "Test document",
"parts": [
{
"merchant_id": 120,
"amount": 10
},
{
"merchant_id": 122,
"amount": 20
}
]
}
3. На метод https://api.vepay.online/mfo/pay/auto-parts поступает запрос, формата:
{
"card": 346,
"extid": "2123412412",
"postbackurl":"http://example.com/p.php",
"fullname":"string",
"document_id":"string",
"parts": [
{
"merchant_id": 120,
"amount": 10
},
{
"merchant_id": 122,
"amount": 20
}
]
}
Предполагается разработка новых методов, аналогично существующим. Смысл в том, чтобы, для создания платежей, дополнительной информацией, передавать список мерчантов (идентификаторы), с указанием размера их части. При этом, в теле запроса, значение amount не передается, т к это избыточно.
Параметры запроса:
Параметры | Значение |
type | Тип шлюза |
extid | Внешний идентификатор запроса от платежного агента, который инициирует запрос |
descript | Описание платежа |
successurl | Адрес Url для возврата после завершения платежа (успех) |
cancelurl | Адрес Url для возврата после отказа от оплаты |
postbackurl | Адрес Url для обратного вызова |
failurl | Адрес Url для возврата после завершения платежа (ошибка) |
timeout | Тайм-аут ожидания оплаты, от 10 до 60 минут |
fullname | Полное имя плательщика |
merchant_id |
Идентификаторы партнеров (поставщиков услуг) между которыми будет поделен платеж |
document_id | Идентификатор документа. Указывается для основания платежа |
amount | Cумма платежа, руб |
card | ИД карты (для автоплатежа) |
parts | Часть платежа |
parts[merchant_id] | Идентификатор мерчанта |
parts[amount] | Сумма части |