Интеграция 1С-Битрикс с Тинькофф Кредит
Покупатель добавил товар за 80 000 рублей в корзину, но не готов платить сразу. Если на странице оформления заказа есть кнопка «Купить в кредит» — конверсия на дорогих товарах вырастает на 15–25%. Тинькофф Кредит — один из наиболее распространённых сервисов онлайн-кредитования в российских интернет-магазинах. Интеграция с 1С-Битрикс технически несложная, но содержит нюансы, которые влияют на работоспособность.
Как работает Тинькофф Кредит
Процесс со стороны покупателя:
- Выбирает товар → нажимает «Купить в кредит»
- Перенаправляется на форму Тинькофф, заполняет заявку
- Тинькофф принимает решение (1–15 минут)
- При одобрении — деньги перечисляются магазину, покупатель получает товар
Со стороны магазина это платёжная система с отложенным подтверждением. Тинькофф предоставляет API (api-msk.tinkoff.ru/api/partners/v2/orders/create), через которое магазин создаёт заявку на кредит, передаёт данные о товарах и сумме, получает ссылку для редиректа покупателя.
Подключение: договор и настройки
Перед технической интеграцией нужен партнёрский договор с Тинькофф. После подписания вы получаете:
- shopId — идентификатор магазина
- showcaseId — идентификатор витрины (может быть несколько для разных типов кредита/рассрочки)
- API-ключ — для авторизации запросов
- Доступ в личный кабинет партнёра — для мониторинга заявок
Техническая интеграция
В 1С-Битрикс Тинькофф Кредит подключается как платёжная система модуля sale. Есть два пути:
Путь 1: готовый модуль из Маркетплейса. На marketplace.1c-bitrix.ru есть несколько модулей для Тинькофф Кредит. Устанавливаете модуль, вводите shopId, showcaseId, API-ключ в настройках платёжной системы (Магазин → Настройки → Платёжные системы). Модуль создаёт обработчик \Sale\Handlers\PaySystem\TinkoffCredit и регистрирует callback-URL для уведомлений.
Путь 2: кастомный обработчик платёжной системы. Если готовые модули не устраивают (устарели, нет нужных фич, конфликтуют), пишем обработчик с нуля.
Структура обработчика в /local/php_interface/include/sale_payment/tinkoff_credit/:
handler.php — класс обработчика
.description.php — метаданные для админки
.settings.php — список настроек (shopId, showcaseId, apiKey)
template/ — шаблон кнопки оплаты
Класс обработчика наследуется от \Bitrix\Sale\PaySystem\ServiceHandler и реализует методы:
-
initiatePay— формирует запрос к API Тинькофф, создаёт заявку, возвращает URL для редиректа -
processRequest— обработка callback от Тинькофф при изменении статуса заявки -
getPaymentIdFromRequest— извлечение ID платежа из входящего уведомления
Формирование заявки
Запрос к API Тинькофф содержит:
{
"shopId": "your_shop_id",
"showcaseId": "your_showcase_id",
"orderNumber": "BX_ORDER_123",
"customerInfo": {
"email": "[email protected]",
"mobilePhone": "+79001234567"
},
"items": [
{
"name": "Ноутбук Lenovo ThinkPad",
"quantity": 1,
"price": 80000,
"category": "electronics"
}
],
"sum": 80000,
"returnUrl": "https://shop.ru/personal/order/detail/{ORDER_ID}/",
"failUrl": "https://shop.ru/personal/order/detail/{ORDER_ID}/?fail=1",
"postLink": "https://shop.ru/bitrix/tools/sale_ps_result.php"
}
Товарные позиции обязательны. Тинькофф использует их для скоринга — заявка без товаров будет отклонена. Данные берутся из корзины: \Bitrix\Sale\Order::loadByAccountNumber($orderNumber)->getBasket().
postLink — URL, на который Тинькофф отправляет POST-уведомления при смене статуса заявки. Должен быть доступен извне (не localhost, не за basic auth).
Обработка callback-уведомлений
Тинькофф отправляет POST на postLink при каждой смене статуса заявки:
| Статус | Значение | Действие в Битрикс |
|---|---|---|
new |
Заявка создана | Ничего |
inprocess |
На рассмотрении | Ничего |
approved |
Одобрена | Ничего (клиент ещё не подписал) |
signed |
Договор подписан | Подтвердить оплату: $payment->setPaid('Y') |
rejected |
Отклонена | Отменить платёж, уведомить менеджера |
canceled |
Отменена клиентом | Отменить платёж |
Критично: оплату подтверждаем только на статус signed, а не approved. Одобренная заявка ещё может быть отменена клиентом.
Проверка подписи уведомления — обязательна. Тинькофф передаёт подпись в заголовке, которая вычисляется как HMAC от тела запроса и вашего API-ключа. Без проверки подписи злоумышленник может подтвердить оплату, отправив фальшивый POST.
Кнопка на странице товара
Помимо оплаты в чекауте, Тинькофф предоставляет виджет для карточки товара — показывает примерный ежемесячный платёж. JS-виджет подключается скриптом:
<script src="https://forma.tinkoff.ru/static/onlineScript.js"></script>
И вызывается с параметрами: tinkoff.online({shopId, showcaseId, items, sum}). Интеграция виджета в шаблон компонента bitrix:catalog.element — в файле template.php или через result_modifier.php.
Тестирование
Тинькофф предоставляет тестовую среду с отдельными shopId и showcaseId. В тестовом режиме заявки одобряются автоматически. Обязательно проверьте полный цикл: создание заявки → редирект → callback с каждым статусом → обновление платежа в Битрикс. Особое внимание — обработке rejected и canceled: убедитесь, что заказ не зависает в статусе «Ожидает оплаты» навечно.







