Платежи через платежную форму
Этот сценарий описывает отправку платежа на банковскую карту через платежную форму. Это вариант подходит, если вы приняли решение не собирать и не хранить данные банковских карт на своей стороне.
В этом случае вы можете получить токенизированные данные карты с помощью виджета платежной формы и безопасно провести оплату.
Данный сценарий не учитывает шаг с холдированием платежа. Как провести платеж с холдированием.
-
Отправьте запрос на создание сессии
session/create.В заголовках запроса передайте идентификатор вашего проекта и подпись запроса.
Пример
curl -X POST \
https://proxy-demo.pikepayments.com/api/v1/session/create \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"customer": {
"reference": "user123",
"contacts": [{
"email": "user@gmail.com"
}]
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "order123"
}' -
Отправьте запрос на создание токена
token, передайте в нем идентификатор сессии и тип виджета, который будете вызывать. В ответе придет токен.Если хотите добавить в платежную форму чекбокс согласия на автоплатежи I agree to recurring payments, передайте в поле
show_recurrent_checkboxзначениеtrue. Это нужно, чтобы проводить рекуррентные списания.
Изначально флажок в данном чекбоксе может отсутствовать (по умолчанию) или быть предустановленным. Если вы хотите, чтобы флажок был предустановлен, обратитесь к вашему менеджеру.Пример
curl -X POST \
https://proxy-demo.pikepayments.com/api/v1/token \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"acquiring_widget": {
"session_id": "ps_123456"
}
}' -
Покажите получателю платежную форму. Для этого нужно подключить нашу JavaScript-библиотеку и добавить виджет платежной формы.
-
Дождитесь вебхука
ready_to_confirm. Это значит, что платеж можно провести, и Pike ждет вашего подтверждения (или отмены).В теле вебхука придут все данные для платежа, их нужно проверить.
В ответ следует отдавать HTTP-код 200.
Пример
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "ready_to_confirm",
"session": {
"id": "ps_3230",
"status": "in_progress",
"created_at": "2024-05-27T02:03:00.000000Z",
"updated_at": "2024-05-27T02:03:00.000000Z",
"acquiring_payments": [{
"id": "pm_2705",
"status": "pending",
"created_at": "2024-05-27T02:03:00.000000Z",
"customer": {
"reference": "user123",
"contacts": [{
"email": "user@gmail.com"
}]
},
"payment_details": {
"type": "card",
"card": {
"last4": "4242",
"brand": "visa"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "good"
}]
}
}' -
Проверьте данные для платежа и подтвердите, что готовы его провести (с помощью запроса
session/confirm) или отмените (отправьте запросsession/cancel).Если карта пользователя требует пройти 3D Secure, вы получите вебхук
action_required, просто отправьте HTTP-код 200 в ответ. Клиент будет перенаправлен на 3D Secure автоматически.Примеры
- session/confirm
- session/cancel
curl -X POST \
https://proxy-demo.pikepayments.com/api/v1/session/confirm \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "3230"
}'curl -X POST \
https://proxy-demo.pikepayments.com/api/v1/session/cancel \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "3230"
}' -
Дождитесь вебхука
payment_finished. В теле вебхука придут все данные, с которыми проводился платеж. Результат платежа приходит в полеstatusмассиваacquiring_payments/payment_list.Если статус
succeeded, значит, оплата прошла успешно.
Схема оплаты через платежную форму
