Інтеграція розстрочки Совість на сайт

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Інтеграція розстрочки Совість на сайт
Середня
від 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

Інтеграція розстрочки Sovest на веб-сайт

Sovest — карта розстрочки від Kiwi Bank (проект закрито в 2023 році). Якщо ви бачите цей документ і розглядаєте інтеграцію Sovest — звернеться до поточних альтернатив: Halva (Sovkombank), Split (Tinkoff), Podeli (Alfa-Bank) або SberPay Installments.

Поточні альтернативи BNPL в Росії

Ринок buy now pay later (BNPL) у 2024–2025 роках у фокусі:

Сервіс Банк Макс. термін Особливості
Halva Sovkombank 24 місяці Найбільша партнерська мережа
Split Tinkoff 12 місяців Інтеграція через Tinkoff API
Podeli Alfa-Bank 3 платежі Миттєве рішення
Dolami Yandex 4 платежі Без відсотків
OZON Credit OZON 12 місяців Тільки для OZON Marketplace

Інтеграція Tinkoff Split

Найбільш технічно зріла заміна. Працює через той же API, що й Tinkoff Kassa, але з типом продукту Credit:

$params = [
    'TerminalKey' => env('TINKOFF_CREDIT_TERMINAL'),
    'Amount'      => 149900, // в копійках
    'OrderId'     => 'order-12345',
    'Description' => 'Замовлення #12345 — розстрочка',
    'DATA'        => [
        'connection_type' => 'widget',
    ],
];

// Генерація Token за стандартною схемою Tinkoff
ksort($params);
$params['Token'] = hash('sha256', implode('', array_values($params)) . env('TINKOFF_CREDIT_PASSWORD'));

$response = Http::post('https://securepay.tinkoff.ru/v2/Init', $params);
$paymentUrl = $response->json('PaymentURL');

Для Split використовується окремий терміналу з продуктом Credit — отримується в кабінеті Tinkoff Business при підключенні до програми.

Інтеграція Podeli (Alfa-Bank)

$response = Http::withHeaders([
    'Authorization' => 'Bearer ' . env('PODELI_TOKEN'),
    'Content-Type'  => 'application/json',
])->post('https://api.podeli.ru/v1/orders', [
    'amount'       => 14990,
    'currency'     => 'RUB',
    'orderId'      => 'order-12345',
    'description'  => 'Замовлення #12345',
    'returnUrl'    => 'https://example.com/payment/return',
    'callbackUrl'  => 'https://example.com/webhook/podeli',
    'customer'     => [
        'phone' => '+79001234567',
    ],
    'items' => [
        [
            'name'     => 'Товар 1',
            'price'    => 14990,
            'quantity' => 1,
        ],
    ],
]);

$checkoutUrl = $response->json('checkoutUrl');

Podeli — три платежі: перший при оформленні, другий і третій через рівні проміжки. Рішення приймається за секунди.

Dolami (Yandex)

Dolami — BNPL-сервіс Yandex, інтегрований через API Yandex Pay:

// Віджет Yandex Pay
YaPay.createPayment({
  env:     YaPay.PaymentEnv.Prod,
  version:  4,
  paymentSheet: {
    version:  4,
    countryCode: YaPay.CountryCode.Ru,
    currencyCode: YaPay.CurrencyCode.Rub,
    merchant: {
      id:   MERCHANT_ID,
      name: 'Мій магазин',
      url:  'https://example.com',
    },
    order: {
      id:    'order-12345',
      total: { amount: '1499.00' },
      items: [{ label: 'Товар 1', amount: '1499.00' }],
    },
    paymentMethods: [
      { type: YaPay.PaymentMethodType.Split, gateway: 'yandex' },
    ],
  },
});

Калькулятор BNPL на карточці товару

function BnplBadges({ price }: { price: number }) {
  const perThree = (price / 3).toFixed(2);
  const perFour  = (price / 4).toFixed(2);

  return (
    <div className="flex gap-2 text-sm text-muted-foreground">
      <span>Podeli: 3 × {perThree} ₽</span>
      <span>Dolami: 4 × {perFour} ₽</span>
    </div>
  );
}

Webhook-паттерн для BNPL

Незалежно від конкретного сервісу, всі BNPL-рішення використовують подібну логіку webhook:

public function handleBnplWebhook(Request $request, string $provider): Response
{
    // 1. Верифікувати підпис (специфічно для кожного провайдера)
    // 2. Перевірити ідемпотентність (не обробляти одну подію двічі)
    // 3. Оновити статус замовлення тільки при фінальному статусі (APPROVED)
    // 4. Повернути 200 — інакше сервіс буде повторювати спроби

    $payload = $this->verifyAndParse($request, $provider);

    if (BnplWebhookLog::where('event_id', $payload['eventId'])->exists()) {
        return response('Already processed', 200);
    }

    BnplWebhookLog::create(['event_id' => $payload['eventId'], 'provider' => $provider]);

    if ($payload['status'] === 'APPROVED') {
        Order::where('id', $payload['orderId'])->update(['status' => 'paid']);
    }

    return response('OK', 200);
}

Час підключення до будь-якого BNPL-сервісу — від 3 до 10 робочих днів залежно від провайдера.