Інтеграція 1С-Бітрікс зі спліт-сервісами (Яндекс Спліт, Долями)

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Інтеграція 1С-Бітрікс зі спліт-сервісами (Яндекс Спліт, Долями)
Середній
~1-2 тижні
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1288
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    880
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    631
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    781
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    681
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1010

Інтеграція 1С-Bitrix зі сплит-сервісами (Яндекс Сплит, Долями)

Сплит-оплата — це не кредит. Покупець не беде в борг у банку, не проходить скоринг на 15 хвилин та не підписує кредитний договір. Сума покупки ділиться на 2–4 рівних платежі, першу — одразу, решта — автоматичне списання з карти через 2, 4, 6 тижнів. Для магазину це означає: гроші за товар приходять повністю одразу (або протягом 1–2 днів), розстрочку покупцю оплачує сервіс. Інтеграція Яндекс Сплит та Долями з 1С-Bitrix різниться за API, але однакова за архітектурою.

Яндекс Сплит: технічна інтеграція

Яндекс Сплит працює через Yandex Pay SDK. Підключення складається з двох частин: фронтенд-віджет та бекенд-обробник.

Фронтенд. На сторінці чекауту або карточці товара підключається SDK:

<script src="https://pay.yandex.ru/sdk/v1/pay.js"
        onload="onYaPayLoad()"
        async></script>

Ініціалізація кнопки:

function onYaPayLoad() {
    const YaPay = window.YaPay;
    YaPay.Button.create({
        merchantId: 'YOUR_MERCHANT_ID',
        currencyCode: YaPay.CurrencyCode.Rub,
        cart: {
            items: [{
                productId: 'SKU123',
                total: {amount: '25000.00'}
            }]
        },
        paymentType: 'SPLIT' // Саме це включає сплит
    })
    .mount(document.getElementById('ya-split-button'));
}

Параметр paymentType: 'SPLIT' — ключовий. Без нього кнопка працює як звичайний Yandex Pay (повна оплата).

Бекенд. Після того як покупець підтверджує сплит-оплату в інтерфейсі Яндекса, Яндекс відправляє webhook на ваш callbackUrl. Обробник має:

  1. Верифікувати JWT-токен з заголовка запиту
  2. Створити замовлення у 1С-Bitrix (\Bitrix\Sale\Order::create)
  3. Підтвердити отримання через API Яндекса (POST /api/merchant/v1/orders/{orderId}/capture)
  4. Оновити статус платежу

Обробник платіжної системи для Яндекс Сплит

У 1С-Bitrix створюємо обробник в /local/php_interface/include/sale_payment/yandex_split/.

Клас успадковує \Bitrix\Sale\PaySystem\ServiceHandler і реалізує:

public function initiatePay(
    \Bitrix\Sale\Payment $payment,
    \Bitrix\Main\Request $request = null
) {
    // Рендеримо шаблон з JS-кнопкою Яндекс Сплит
    // Передаємо дані корзини в JS
    $this->setExtraParams([
        'MERCHANT_ID' => $this->getBusinessValue($payment, 'MERCHANT_ID'),
        'CART_ITEMS' => $this->getCartItems($payment),
        'AMOUNT' => $payment->getSum(),
    ]);
    return $this->showTemplate($payment, 'template');
}

Шаблон template/template.php рендерит кнопку Yandex Pay з параметром SPLIT.

Долями (Dolyame): інтеграція

«Долями» — сервіс від Т-Банка (раніше Tinkoff). API відрізняється від Яндекс Сплит, але принцип той же.

Endpoint: https://partner.dolyame.ru/v1/orders

Створення замовлення:

$response = $this->apiRequest('POST', '/v1/orders', [
    'id' => $payment->getField('ORDER_ID'),
    'amount' => $payment->getSum(),
    'prepaid_amount' => 0,
    'items' => $this->formatItems($payment),
    'client_info' => [
        'first_name' => $order->getPropertyValueByCode('NAME'),
        'last_name' => $order->getPropertyValueByCode('LAST_NAME'),
        'phone' => $order->getPropertyValueByCode('PHONE'),
        'email' => $order->getPropertyValueByCode('EMAIL'),
    ],
    'notification_url' => $this->getCallbackUrl($payment),
    'success_url' => $this->getSuccessUrl($payment),
    'fail_url' => $this->getFailUrl($payment),
]);

API «Долями» повертає link — URL для редиректу покупця на сторінку підтвердження.

Авторизація: HTTP Basic Auth з login та password, отриманими при реєстрації партнера. Додатково — підпис запиту X509-сертифікатом (видається при підключенні).

Модель статусів сплит-сервісів

Сплит-сервіси простіше кредитних — менше проміжних статусів:

Статус Яндекс Сплит Долями Дія у Bitrix
Створен PENDING new Очікування
Підтверджений CONFIRMED approved $payment->setPaid('Y')
Відхилений REJECTED rejected Скасування платежу
Скасований CANCELED canceled Скасування платежу
Повернення REFUNDED refunded Повернення у Bitrix

Ключова відмінність від кредиту: рішення приймається за секунди (немає скорингу в традиційному сенсі), гроші магазин отримує одразу — не після підписання кредитного договору.

Повернення та часткова скасування

Обидва сервіси підтримують часткові повернення. Яндекс Сплит: POST /api/merchant/v1/orders/{orderId}/refund з сумою повернення. Долями: POST /v1/orders/{orderId}/refund.

При частковому поверненні сервіс перераховує графік платежів покупця. Магазину повертається тільки сума повернення (з уже перечислених грошей).

Обробка у 1С-Bitrix через метод refund обробника платіжної системи:

public function refund(\Bitrix\Sale\Payment $payment, $refundAmount)
{
    $orderId = $payment->getField('ORDER_ID');
    $response = $this->apiRequest('POST', "/v1/orders/{$orderId}/refund", [
        'amount' => $refundAmount,
        'items' => $this->getRefundItems($payment, $refundAmount)
    ]);
    return $response['status'] === 'success';
}

Мінімальні та максимальні суми

Сервіс Мінімум Максимум Кіл-во платежів
Яндекс Сплит 1 000 руб 150 000 руб 2–4
Долями 500 руб 30 000 руб 4

Суми актуальні на момент написання — перевіряйте в документації, ліміти змінюються. У обробнику платіжної системи реалізуйте перевірку суми замовлення: якщо сума поза діапазоном — не показуйте кнопку сплит-оплати.

Одночасне підключення обох сервісів

Можна й потрібно підключати обидва. На сторінці чекауту показуються дві кнопки: «Оплатити Яндекс Сплит» та «Оплатити Долями». Покупець вибирає той сервіс, картою якого користується. У 1С-Bitrix це дві окремі платіжні системи в модулі sale, кожна зі своїм обробником. Прив'язка до служб доставки та обмеження за сумою налаштовуються стандартними засобами: Магазин → Платіжні системи → Обмеження.