Перейти к основному содержимому

Платежи через платежную форму

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

Способ не учитывает шаг с холдированием платежа. Как провести платеж с холдированием.

Как провести платеж через виджет

1. Создайте платежную сессию

Отправьте запрос на создание сессии transaction/initiate. В ответе придет идентификатор платежной сессии.

Пример
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/transaction/initiate \
-H 'Content-Type: application/json' \
-H 'X-Project-Id: your_project_name' \
-H 'X-Signature: signature' \
-d '{
"user_info": {
"user_id": "user123",
"contact_info": [{
"email_address": "user@gmail.com"
}]
},
"sum_info": {
"sum": 10000,
"currency_code": "rub"
},
"extra_info": "order123"
}'

2. Начните платеж

Отправьте запрос на создание токена token. Передайте в нем идентификатор сессии и тип виджета, который будете вызывать. В ответе придет токен.

Если хотите добавить в платежную форму чекбокс согласия на автоплатежи I agree to recurring payments, передайте в поле show_autopay_option значение true. Это нужно, чтобы проводить рекуррентные списания.
Флажок в этом чекбоксе может отсутствовать по умолчанию. Если вы хотите, чтобы флажок был предустановлен, обратитесь к вашему менеджеру Zetplat.

Пример
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/token \
-H 'Content-Type: application/json' \
-H 'X-Project-Id: your_project_name' \
-H 'X-Signature: signature' \
-d '{
"payment_form_config": {
"session_id": "ps_123456"
}
}'

3. Отправьте получателю платежную форму.

Для этого нужно подключить нашу JavaScript-библиотеку и добавить виджет платежной формы.
Как добавить платежную форму

4. Дождитесь вебхука для платежа

Zetplat отправит вам вебхук approve_pending и будет ждать подтверждения или отмены.

Пример
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-Signature: signature' \
-d '{
"type": "approve_pending",
"session_info": {
"id": "ps_3230",
"transaction_status": "ongoing",
"created_date": "2024-05-27T02:03:00.000000Z",
"updated_at": "2024-05-27T02:03:00.000000Z",
"payments": [{
"id": "pm_2705",
"transaction_status": "pending",
"created_date": "2024-05-27T02:03:00.000000Z",
"user_info": {
"user_id": "user123",
"contact_info": [{
"email_address": "user@gmail.com"
}]
},
"payment_info": {
"type": "card_info",
"card_info": {
"card_last4": "4242",
"card_network": "visa"
}
},
"sum_info": {
"sum": 10000,
"currency_code": "rub"
},
"extra_info": "good"
}]
}
}'

5. Подтвердите или отмените платеж

Проверьте данные для платежа, а затем подтвердите или отмените его:

6. Выполните дополнительные действия

Если вы получите вебхук action_pending от Zetplat, это значит, что для проведения платежа нужны дополнительные действия. Например, пользователю нужно пройти 3D Secure. В этом случае, перенаправьте пользователя на адрес для 3D Secure.

Примеры
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/transaction/approve \
-H 'Content-Type: application/json' \
-H 'X-Project-Id: your_project_name' \
-H 'X-Signature: signature' \
-d '{
"session_id": "3230"
}'

7. Дождитесь результата платежа

Zetplat отправит вам вебхук checkout_results. Статус successful означает успешный платеж.

Подробнее о статусах платежа
Описание кодов ошибок и их значений

Схема оплаты через платежную форму

Схема платежа через платежную форму