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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция 1С-Битрикс со сплит-сервисами (Яндекс Сплит, Долями)
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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 Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

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

Сплит-оплата — это не кредит. Покупатель не берёт в долг у банка, не проходит скоринг на 15 минут и не подписывает кредитный договор. Сумма покупки делится на 2–4 равных платежа, первый — сразу, остальные — автоматическое списание с карты через 2, 4, 6 недель. Для магазина это означает: деньги за товар приходят полностью сразу (или в течение 1–2 дней), а рассрочку покупателю оплачивает сервис. Интеграция Яндекс Сплит и Долями с 1С-Битрикс различается по 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\Sale\Order::create)
  3. Подтвердить получение через API Яндекса (POST /api/merchant/v1/orders/{orderId}/capture)
  4. Обновить статус платежа

Обработчик платёжной системы для Яндекс Сплит

В 1С-Битрикс создаём обработчик в /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): интеграция

«Долями» — сервис от Т-Банка (ранее Тинькофф). 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-сертификатом (выдаётся при подключении).

Статусная модель сплит-сервисов

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

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

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

Возвраты и частичная отмена

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

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

Обработка в 1С-Битрикс через метод 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С-Битрикс это две отдельные платёжные системы в модуле sale, каждая со своим обработчиком. Привязка к службам доставки и ограничения по сумме настраиваются стандартными средствами: Магазин → Платёжные системы → Ограничения.