Рекуррентные платежи CIT
Рекуррентный платеж CIT (Customer Initialized Transaction) — это возможность проводить оплату по рекуррентному токену с верификацией плательщика посредством 3D Secure.
Для гарантии успешной оплаты платежей CIT мы рекомендуем использовать идентификатор проекта, предназначенный для платежей с 3D Secure.
Как сделать рекуррентный платеж CIT
- Инициируйте платежную сессию методом
session/init/payment
, в запросе передайте значениеinitiator:client
в объектеrecurrent
и URL для возврата плательщика после прохождения верификации 3D Secure в параметреreturn_url
;
Пример запроса
curl -X POST
https://demo.bank131.ru/api/v1/session/init/payment \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"payment_details": {
"type": "recurrent",
"recurrent": {
"token": "token_value",
"initiator": "client"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"customer": {
"reference": "lucky"
},
"payment_options": {
"return_url": "https://131.ru"
}
}'
- Дождитесь от Банка 131 вебхука
action_required
с данными для редиректа на страницу прохождения 3D Secure.
Пример вебхука
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "action_required",
"session": {
"id": "ps_3230",
"status": "in_progress",
"created_at": "2018-05-27T02:03:00.000000Z",
"updated_at": "2018-05-27T02:03:00.000000Z",
"acquiring_payments": [
{
"id": "pm_131",
"status": "pending",
"created_at": "2018-05-27T02:03:00.000000Z",
"customer": {
"reference": "user@131.ru"
},
"payment_details": {
"type": "recurrent",
"recurrent": {
"token": "token_value",
"initiator": "client"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"amounts": {
"fee": {
"merchant_fee": {
"amount": 10,
"currency": "RUB"
}
}
},
"customer_interaction": {
"type": "redirect",
"redirect": {
"url": "https://bank131.ru?foo=bar",
"base_url": "https://bank131.ru",
"method": "GET",
"qs": {
"foo": "bar"
},
"params": {
"paReq": "sdfew^//asdhbv",
"MD": "abc75daefnn"
}
}
}
}
]
}
}'
- Перенаправьте пользователя на адрес, который получили в поле
customer_interaction.redirect.url
. Обратите внимание на метод для перенаправления пользователя в полеcustomer_interaction.redirect.method
: он может быть как GET, так и POST. - Дождитесь от Банка 131 вебхука
payment_finished
с результатом проведения рекуррентного платежа.
Пример вебхука
{
"type": "payment_finished",
"session": {
"id": "ps_3230",
"status": "accepted",
"created_at": "2018-05-27T02:03:00.000000Z",
"updated_at": "2018-05-27T02:03:00.000000Z",
"acquiring_payments": [
{
"id": "pm_2705",
"status": "succeeded",
"created_at": "2018-05-27T02:03:00.000000Z",
"finished_at": "2018-05-27T02:03:00.000000Z",
"customer": {
"reference": "lucky"
},
"payment_details": {
"type": "recurrent",
"recurrent": {
"token": "token_value",
"initiator": "client"
}
},
"recurrent": {
"token": "feda2b2106a2e8747bbdc4c9f53c7f5f6ab845ffa1b7cc68ca839720af99b3d1",
"created_at": "2020-07-14T13:17:11+03:00",
"finished_at": "2020-07-31T16:05:42+03:00",
"is_active": true
},
"amount_details": {
"amount": 10000,
"currency": "rub"
}
}
]
}
}
- Обратите внимание, что после прохождения верификации 3D Secure плательщик будет возвращен на
return_url
. Вызовreturn_url
может быть произведен при помощи как метода GET, так и POST, от вас может потребоваться настроить преобразование (редирект) запроса POST в GET.