Google Pay™
Этот сценарий описывает отправку платежа на банковскую карту через Google Pay. Чтобы использовать данный способ, интегрируйте Google Pay в ваше приложение Android или сайт.
Шаг 1. Получите платежный токен в Google Pay
- Пользователь формирует заказ на вашем сайте или в приложении Android.
- Пользователь выбирает способ оплаты Google Pay.
- Пользователь выбирает одну из сохраненных карт или вводит данные новой карты.
- Пользователь нажимает Оплатить.
- Google передает платежный токен.
Шаг 2. Начните платежную сессию
Отправьте запрос на проведение платежа с помощью метода
session/init/payment
. В поле payment_details.type
передайте значение secured_card
.
В объекте secured_card
передайте данные, необходимые для оплаты.
В заголовках запроса следует передать идентификатор вашего проекта и подпись запроса.
Пример запроса на создание сессии с одновременным стартом платежа
curl -X POST \
https://proxy-playground.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": "secured_card",
"secured_card": {
"type": "google_pay",
"google_pay": {
"token": "{\"signature\":
\"MEgKey\":{\"signedKey\":\"{\\\"keyValue\\\":\\\"MFkwEwbcg\\\\u003d\\\\u003d\\\",\\\"keyExpiration\\\":\\\"118716\\\"}\",\"signatures\":[\"MEQCIw\\u003d\\u003d\"]},\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"wkJmz3OvO4\\\\u003d\\\"}\"}"
}
}
},
"amount_details": {
"amount": 100,
"currency": "rub"
},
"metadata": {
"key": "value"
},
"customer": {
"reference": "lucky"
}
}'
Шаг 3. 3D Secure
Если карта пользователя требует 3D Secure, Банк 131 пришлет вам вебхук
action_required
с данными для редиректа.
Перенаправьте пользователя на адрес, который придет в поле customer_interaction.redirect.url
.
Шаг 4. Узнайте результат оплаты
Дождитесь вебхука payment_finished
или запросите статус платежа с помощью метода session/status
.
Результат платежа приходит в поле status
объекта acquiring_payments/payment_list
.
Если статус succeeded
, значит, оплата прошла успешно.
Если статус failed
— оплата не прошла из-за ошибки.
Готово, платеж отправлен.