Інтеграція платіжної системи Сбер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 як окремого методу (без введення карти) обов'язкова наявність додатка СберБанк Онлайн у покупця — на десктопі цей метод не працює.