Платежи через платежную форму
Этот способ описывает отправку платежа на банковскую карту через виджет (платежную форму). Подходит, если вы приняли решение не собирать и не хранить данные банковских карт на своей стороне.
Способ не учитывает шаг с холдированием платежа. Как провести платеж с холдированием.
Как провести платеж через виджет
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. Подтвердите или отмените платеж
Проверьте данные для платежа, а затем подтвердите или отмените его:
- Подтвердить — с помощью запроса
transaction/approve. - Отменить — с помощью запроса
transaction/cancel.
6. Выполните дополнительные действия
Если вы получите вебхук action_pending от Zetplat, это значит, что для проведения платежа нужны дополнительные действия. Например, пользователю нужно пройти 3D Secure. В этом случае, перенаправьте пользователя на адрес для 3D Secure.
Примеры
- transaction/approve
- transaction/cancel
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"
}'
curl -X POST \
https://proxy-demo.zetplat.com/api/v1/transaction/cancel \
-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 означает успешный платеж.
Подробнее о статусах платежа
Описание кодов ошибок и их значений
Схема оплаты через платежную форму
