Интеграция платёжной системы СберPay на сайт

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Интеграция платёжной системы СберPay на сайт
Средняя
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Интеграция платёжной системы СберPay на сайт

СберPay — платёжное решение Сбербанка, которое существует в нескольких ипостасях: как метод быстрой оплаты через приложение СберБанк Онлайн (без ввода данных карты), как встроенный способ оплаты на сайте через Сбербанк Эквайринг, и как QR-оплата через СБП. Чаще всего под «интеграцией СберPay» подразумевают подключение к шлюзу Сбербанк Эквайринга с поддержкой кнопки СберPay.

Подключение к Сбербанк Эквайрингу

Для работы нужен договор эквайринга со Сбербанком. После подписания договора выдаются логин и пароль для тестовой и боевой среды.

Тестовая среда: https://3dsec.sberbank.ru/payment/rest/ Боевая среда: https://securepayments.sberbank.ru/payment/rest/

Аутентификация — через userName + password в каждом запросе, либо через token (рекомендуемый способ с 2022 года).

Регистрация заказа

$response = Http::get('https://securepayments.sberbank.ru/payment/rest/register.do', [
    'userName'        => env('SBER_USERNAME'),
    'password'        => env('SBER_PASSWORD'),
    'orderNumber'     => 'order-12345',
    'amount'          => 150000, // в копейках
    'returnUrl'       => 'https://example.com/payment/return',
    'failUrl'         => 'https://example.com/payment/fail',
    'description'     => 'Заказ #12345',
    'email'           => '[email protected]',
    'language'        => 'ru',
    'pageView'        => 'DESKTOP', // или MOBILE
]);

$orderId    = $response->json('orderId');    // ID в системе Сбербанка
$formUrl    = $response->json('formUrl');    // URL платёжной страницы

После получения formUrl — редирект туда. Сбербанк покажет страницу оплаты со всеми доступными методами, включая СберPay, если покупатель зашёл с устройства с установленным СберБанк Онлайн.

Проверка статуса заказа

Сбербанк поддерживает уведомления (callback), но их нужно отдельно настроить в личном кабинете. Надёжнее дополнительно проверять статус на returnUrl:

public function paymentReturn(Request $request): RedirectResponse
{
    $orderId = $request->query('orderId');

    $status = Http::get('https://securepayments.sberbank.ru/payment/rest/getOrderStatusExtended.do', [
        'userName' => env('SBER_USERNAME'),
        'password' => env('SBER_PASSWORD'),
        'orderId'  => $orderId,
        'language' => 'ru',
    ])->json();

    // orderStatus: 0=зарегистрирован, 1=не оплачен, 2=оплачен, 3=авторизован,
    // 4=аннулирован, 5=возврат, 6=АЗ отклонена банком покупателя
    if ($status['orderStatus'] === 2) {
        $localOrderId = $status['orderNumber']; // наш внутренний номер
        Order::where('id', $localOrderId)->update(['status' => 'paid']);
        return redirect('/orders/' . $localOrderId . '?paid=1');
    }

    return redirect('/cart?payment_failed=1');
}

Никогда не верить только параметрам в URL — только серверная проверка через getOrderStatusExtended.

Двухстадийная оплата

Для маркетплейсов или заказов с постоплатой подходит двухстадийная схема: сначала авторизация (заморозка средств), затем списание после отгрузки.

// Регистрация с флагом двухстадийной оплаты
Http::get('https://securepayments.sberbank.ru/payment/rest/registerPreAuth.do', [
    // те же параметры что и register.do
]);

// Подтверждение списания после отгрузки
Http::get('https://securepayments.sberbank.ru/payment/rest/deposit.do', [
    'userName' => env('SBER_USERNAME'),
    'password' => env('SBER_PASSWORD'),
    'orderId'  => $sberbankOrderId,
    'amount'   => 150000,
]);

Замороженные средства удерживаются до 30 дней. Если в течение этого срока не подтвердить — авторизация автоматически отменяется.

Фискализация

Сбербанк поддерживает фискализацию через собственную кассу «Атол Онлайн», интегрированную в эквайринг. Чековые данные передаются в параметре orderBundle:

'orderBundle' => json_encode([
    'customerDetails' => ['email' => '[email protected]'],
    'cartItems' => [
        'items' => [[
            'positionId'   => 1,
            'name'         => 'Товар 1',
            'quantity'     => ['value' => 1, 'measure' => 'шт'],
            'itemAmount'   => 150000,
            'itemCode'     => 'SKU-001',
            'tax'          => ['taxType' => 0], // 0=без НДС
            'itemPrice'    => 150000,
        ]],
    ],
]),

Возвраты

Http::get('https://securepayments.sberbank.ru/payment/rest/refund.do', [
    'userName' => env('SBER_USERNAME'),
    'password' => env('SBER_PASSWORD'),
    'orderId'  => $sberbankOrderId,
    'amount'   => 75000, // частичный или полный возврат
]);

Особенности и ограничения

Основная сложность с эквайрингом Сбербанка — медленная поддержка. Ответ на запрос о подключении занимает от 5 до 14 рабочих дней, активация боевой среды после тестирования — ещё 3–5 дней. Документация обновляется нерегулярно; актуальную версию запрашивают у менеджера. Для СберPay как отдельного метода (без ввода карты) обязательно наличие приложения СберБанк Онлайн у покупателя — на десктопе этот метод не работает.