Проводить оплату с помощью SmartPay можно в любом сайте или веб-приложении, открытом в браузере. Для этого нужно отправить HTTP-запрос, авторизованный с помощью эксплуатационного токена, и обработать платежную форму.
О том как использовать SmartPay в смартапах читайте в разделе Способы подключения платежей.
Платеж может быть одностадийным или двухстадийным.
Чтобы совершать оплату в веб-браузере:
Отправьте заявку на использование сервиса по адресу developer@sberdevices.ru.
В заявке нужно указать, что вы хотите использовать SmartPay для оплаты в интернете. Сообщите идентификатор проекта SmartPay и запросите поддержку параметра
partner_client_id
. Параметр используется для идентификации пользователя в процессе оплаты.Получите эксплуатационный токен, для авторизации запросов к SmartPay.
Создайте счет с помощью запроса
POST /invoices
.Вызовите метод оплаты
POST /invoices/{invoice_id}
.Добавьте в запрос следующие параметры:
Блок
user_id
:"user_id": {
"partner_client_id": "<идентификатор пользователя>"
},Где
partner_client_id
— уникальный идентификатор пользователя, который вам нужно присвоить самостоятельно в процессе оплаты.Блок
operations
, который сообщает SmartPay, что в ответе нужно вернуть ссылку на страницу оплаты:"operations": [
{
"operation": "payment",
"code": "new",
"value": "0"
}
],Параметр
return_url
— адрес, на который нужно перенаправить пользователя в случае успешной оплаты.Параметр
fail_url
— адрес, на который нужно перенаправить пользователя в случае отмены или неуспешной оплаты.
Пример запроса:
curl --location --request POST 'https://smartmarket.online.sberbank.ru/smartpay/v1/invoices/0000001' \
--header 'Authorization: Bearer <эксплуатационный токен>' \
--header 'Content-Type: application/json' \
--data-raw '{
"user_id": {
"partner_client_id": "<идентификатор партнера>"
},
"operations": [
{
"operation": "payment",
"code": "new",
"value": "0"
}
],
"return_url": "https://sberdevices.ru/payment/success",
"fail_url": "https://sberdevices.ru/payment/fail"
}'SmartPay возвращает в ответе URL платежной формы, на который надо перенаправить клиента для прохождения оплаты (
form_url
).Переадресуйте клиента на форму оплаты.
После успешной оплаты заказа пользователь будет перенаправлен по адресу, указанному в поле
return_url
запросаPOST/invoices/{invoice_id}
.В случае отмены или неуспешной оплаты пользователь будет перенаправлен по адресу, указанному в поле
fail_url
.