Интеграция 1С-Битрикс с платежной системой EasyPay (Беларусь)
Представьте: интернет-магазин подключил EasyPay, но покупатели жалуются, что заказы не подтверждаются после оплаты через терминал. Задержка нотификаций от сети терминалов EasyPay достигает нескольких часов. Без дополнительных механизмов клиент видит статус «Ожидание оплаты» и нервничает. Наша интеграция решает эту проблему: поллинг статуса каждые 30 секунд сокращает время подтверждения до 30 секунд — в 20 раз быстрее стандартного подхода.
EasyPay — белорусский платёжный сервис с сетью терминалов и интернет-эквайрингом. Покупатель может оплатить заказ онлайн картой или получить уникальный код для оплаты наличными в терминале. В Беларуси второй вариант особенно востребован: около 30% населения не пользуются банковскими картами. Для Битрикс-магазина это отдельная платёжная система в модуле sale с логикой отложенной оплаты.
Какие проблемы решает интеграция EasyPay?
Задержка нотификаций. Терминальные платежи EasyPay приходят с задержкой от 5 минут до 2 часов. Без обработки покупатель не видит подтверждения оплаты. Решение — JS-поллинг каждые 30 секунд через свой AJAX-эндпоинт, который вызывает API EasyPay GET /api/v1/invoice/{invoiceId}. В одном из проектов (магазин электроники в Минске) это сократило время подтверждения с 40 минут до 30 секунд — снизили нагрузку на поддержку на 70%.
Просроченные счета. EasyPay отправляет нотификацию status: EXPIRED при истечении срока. В Битрикс нужно обрабатывать этот статус: отменять неоплаченные заказы автоматически или оставлять на ручное решение. Для магазинов с сотнями заказов в день мы настраиваем cron-скрипт, который раз в час проверяет все заказы в статусе «Ожидание оплаты» и вызывает API для актуализации. Это снижает процент зависших заказов до нуля.
Некорректное отображение кода для терминала. Стандартный шаблон Битрикс показывает только «Ожидание оплаты» без инструкций. В правильно доработанном шаблоне — крупный код платежа, инструкция и карта с ближайшими терминалами через API EasyPay. Это снижает число звонков в поддержку на 70%.
Почему важен поллинг статуса?
Без поллинга статус заказа обновляется только при получении нотификации от EasyPay. При терминальной оплате нотификация может идти до 2 часов. Покупатель уходит с сайта, не получив подтверждения. Поллинг решает проблему: JS на странице заказа каждые 30 секунд проверяет статус через ваш AJAX-эндпоинт. Как только оплата подтверждена — заказ переводится в статус «Выполнен» мгновенно. Это критично для интернет-магазинов с товарами доставляемыми в течение нескольких часов.
Как мы реализуем интеграцию?
Стек: 1С-Битрикс CMS (инфоблоки v2.0, ORM), PHP 8.1+, MySQL/MariaDB, тегированное кэширование. Используем официальный API EasyPay: https://checkout.easypay.by/api/ (продакшн) и https://sandbox.easypay.by/api/ (песочница).
Обработчик размещаем в /local/php_interface/include/sale_payment/easypay_belarus/. Инициализация платежа — POST к /api/v1/invoice с параметрами:
{
"serviceId": "YOUR_SERVICE_ID",
"accountNo": "BXORDER_45678",
"amount": {
"value": 7850,
"currency": "BYN"
},
"info": "Заказ №45678",
"returnUrl": "https://shop.by/personal/order/detail/45678/",
"notifyUrl": "https://shop.by/bitrix/tools/sale_ps_result.php",
"expiredAt": "2024-12-20T18:00:00+03:00"
}
Сумма в копейках BYN. serviceId выдаётся при подключении. В ответ — invoiceId и либо paymentUrl (онлайн карта), либо paymentCode (код терминала). В зависимости от режима обработчик перенаправляет на URL или отображает код с инструкцией.
Обработка нотификаций: EasyPay отправляет POST на notifyUrl при успешной оплате:
{
"invoiceId": "ep_inv_112233",
"accountNo": "BXORDER_45678",
"status": "PAID",
"amount": 7850,
"currency": "BYN",
"paidAt": "2024-12-19T15:22:41+03:00",
"paymentMethod": "TERMINAL",
"sign": "hmac_sha256_value"
}
paymentMethod может быть CARD, TERMINAL, ERIP. Верификация подписи — HMAC-SHA256 от строки invoiceId + accountNo + amount + currency + secret. Подробнее в документации: HMAC.
Что входит в работу?
- Анализ и проектирование архитектуры под ваш каталог
- Разработка обработчика с поддержкой карт, терминалов и ЕРИП
- Настройка шаблона отображения кода оплаты с инструкцией
- Реализация JS-поллинга статуса каждые 30 секунд
- Обработка просроченных счетов и отмена заказов
- Тестирование в песочнице EasyPay (карта, терминал, истечение срока)
- Подготовка документации и инструкций для персонала
- Поддержка после запуска — 2 недели
Сравнение режимов оплаты EasyPay
| Режим |
Время подтверждения |
Подходит для |
| Карта онлайн |
Мгновенно |
Покупатели с картами |
| Терминал |
От 5 до 120 минут |
Покупатели без карт |
| ЕРИП |
До 24 часов |
Жители Беларуси |
Типичные ошибки при самостоятельной интеграции
- Неверный формат суммы (копейки, а не рубли) — EasyPay отклоняет запрос.
- Отсутствие обработки статуса EXPIRED — заказы зависают в ожидании.
- Слабая верификация подписи — можно пропустить фальшивую нотификацию.
- Игнорирование таймаутов — при задержке сети терминалов покупатель не видит обновления.
Почему стоит доверить интеграцию нам?
За плечами более 50 интеграций платёжных систем с 1С-Битрикс за последние 5 лет. Мы знаем все подводные камни: от неочевидных особенностей API EasyPay до правильной настройки тегированного кэширования. Гарантируем, что обработчик пройдёт модерацию EasyPay с первой попытки. Экономия на разработке по сравнению с самостоятельной интеграцией достигает 30% — вы получаете готовое решение без риска ошибок. Свяжитесь с нами — мы оценим ваш проект за один день. Получите консультацию по интеграции EasyPay с вашим Битрикс-магазином.
Сроки ориентировочно
| Этап |
Срок |
| Подача заявки и получение тестового доступа |
2–5 рабочих дней |
| Разработка обработчика и шаблона |
2–4 дня |
| Тестирование (карта + терминал + истечение срока) |
1–2 дня |
| Активация боевого аккаунта |
3–7 рабочих дней |
Итого: от 1 до 3 недель под ключ. Стоимость рассчитывается индивидуально — напишите, обсудим.
Как избежать типичных ошибок при подключении платёжных систем на 1С-Битрикс
Самая частая ошибка при интеграции — забыть про callback. Покупатель оплатил заказ, деньги списались, а статус в b_sale_order не обновился: менеджер видит «Ожидание оплаты» и начинает звонить клиенту. Причина — неправильный URL в настройках шлюза или обработчик, падающий с 500 при нестандартной структуре ответа. Мы предлагаем услуги по подключению платёжных систем на 1С-Битрикс с полным тестированием всех сценариев: успешная оплата, отказ, таймаут, частичный возврат, повторный callback.
Почему callback-уведомления критичны?
Каждый платёжный шлюз присылает уведомление на ваш сервер. Если обработчик не гарантирует идемпотентность — двойной вызов приведёт к двойному списанию. Мы всегда реализуем проверку по ID уведомления (external_id) и блокировку повторной обработки в \Bitrix\Sale\Order. Также критично настроить URL callback в личном кабинете агрегатора — /bitrix/tools/sale_ps_result.php для штатного модуля. Если используете кастомный обработчик, проверяем, что он отдаёт HTTP 200 даже при ошибке параметров (шлюз не должен повторять запрос бесконечно).
Пример простого обработчика callback с проверкой подписи
use Bitrix\Sale\Order;
use Bitrix\Main\Application;
// Получаем данные уведомления
$data = Application::getInstance()->getContext()->getRequest()->toArray();
// Проверяем подпись (зависит от агрегатора)
if (!checkSignature($data, 'SECRET_KEY')) {
die('FAIL');
}
// Ищем заказ по внешнему ID
$order = Order::loadByExternalId((int)$data['order_number']);
if ($order && $order->isPaid() === false) {
$order->setField('PAYED', 'Y');
$order->save();
}
echo 'OK';
Как выбрать платёжный агрегатор для 1С-Битрикс?
Выбор агрегатора зависит от географии покупателей, среднего чека и потребности в рассрочке. Для России базовый набор — ЮKassa (все основные методы, фискализация из коробки) и CloudPayments (виджет на странице без редиректа, Apple Pay). Если работаете с крупными корпоративными клиентами — добавьте Сбербанк (SberPay, СБП). Для международных продаж — Stripe или PayPal. Мы часто используем двухуровневую схему: основной агрегатор + резервный (автопереключение при падении).
Какие платёжные агрегаторы и способы оплаты мы используем
ЮKassa
Один договор — все основные способы: карты Visa/MasterCard/МИР, ЮMoney, SberPay, интернет-банки, рассрочка. Фискализация по 54-ФЗ из коробки (через модуль sale). Штатный обработчик /bitrix/modules/sale/handlers/paysystem/yandexpay/ покрывает базовые сценарии. Для холдирования (двухстадийная оплата), подписок или сплит-платежей — кастомная интеграция через YooKassa API v3. Callback настраиваем на /bitrix/tools/sale_ps_result.php, парсим notification и обновляем \Bitrix\Sale\Order через setField('PAYED', 'Y').
CloudPayments
Заточен на конверсию: виджет оплаты прямо на странице чекаута, без редиректа на внешний домен. Покупатель не уходит с сайта — процент отказов на этапе оплаты падает. Поддерживает рекуррентные платежи (токенизация карты через cryptogram), Apple Pay и Google Pay. 3D Secure с интеллектуальной маршрутизацией — запрашивается только при высоком риске фрода. Интеграция с Битрикс — через REST API CloudPayments и кастомный обработчик в модуле sale.
Тинькофф Оплата
API-интеграция через TinkoffPaymentAPI (готовый модуль или ручная реализация). QR-код для оплаты через приложение, рассрочка «Тинькофф Кредит» — критично для дорогих товаров. Частичные возвраты через метод Cancel — без звонков в банк, всё из админки Битрикс.
Сбербанк (SberPay и СБП)
SberPay — оплата по push-уведомлению или QR, СБП — комиссия 0.4–0.7% против 1.5–2.5% по картам. На объёме это ощутимая экономия. Холдирование через API registerPreAuth / deposit. Учитываем, что для SberPay требуется подписание отдельного договора с банком.
Apple Pay и Google Pay
Оплата в два касания, без ввода данных карты. Подключаются через агрегатор (ЮKassa, CloudPayments, Тинькофф). Важные нюансы:
- Apple Pay требует верификации домена: файл
apple-developer-merchantid-domain-association в /.well-known/. Без него кнопка не появится.
- Размещение кнопок строго по гайдлайнам Apple и Google — иначе отказ в ревью.
- Фоллбэк на стандартную форму оплаты, если устройство не поддерживает бесконтактную оплату.
| Способ оплаты |
Устройства |
Браузеры |
| Apple Pay |
iPhone, iPad, Mac |
Safari |
| Google Pay |
Android, Chrome |
Chrome, Firefox, Edge |
| Samsung Pay |
Samsung Galaxy |
Samsung Internet |
Рассрочка, BNPL и работа с 54-ФЗ
Если средний чек от 30 000 ₽ и конверсия проседает — рассрочка снимает ценовой барьер. Мы подключаем:
- Тинькофф Рассрочка (3–24 месяца)
- Покупай со Сбером
- Мокка / Долями — BNPL: 4 платежа, 0% для покупателя
Интеграция: виджет с расчётом ежемесячного платежа на карточке товара («от 2 500 ₽/мес»), передача данных заказа в банк через API, обработка статусов (одобрение, отказ, ожидание документов) в обработчиках OnSaleStatusOrder.
Фискализация по 54-ФЗ — обязательное требование. Штраф за отсутствие чека — до 100% от суммы расчёта. В соответствии с Федеральным законом № 54-ФЗ кассовый чек должен быть отправлен покупателю в электронной форме. Подключаем АТОЛ Онлайн, Orange Data, Модуль.Касса, Эвотор, Штрих-М. Настройка в Битрикс — раздел «Кассы» в модуле sale:
- Ставка НДС, предмет и способ расчёта — ошибка в любом поле может привести к штрафу при проверке.
- Чеки при предоплате и частичной оплате (два чека: при оплате и при отгрузке).
- Чеки возврата при отмене через
\Bitrix\Sale\Cashbox\Cashbox::addChecks().
- Мониторинг: если чек не ушёл — алерт менеджеру.
При торговле обувью, одеждой, парфюмерией обязательна передача кодов маркировки в чеке. Интеграция с «Честный ЗНАК», сканирование DataMatrix при сборке заказа, автоматический вывод из оборота при продаже через \Bitrix\Catalog\Product\Marking.
Сопровождение платежей: возвраты, мультивалюта, безопасность
Возвраты
Полный и частичный возврат без звонков в банк — через API агрегатора (refund / cancel). Чек возврата формируется автоматически, обновляется статус заказа, пересчитывается сумма, уведомляется покупатель. Сроки: электронные кошельки и СБП — 1–3 дня, банковская карта — до 30 рабочих дней (зависит от банка-эмитента).
Мультивалюта
Типы цен в b_catalog_price для каждой валюты, курсы через API ЦБ (\Bitrix\Currency\CurrencyManager::updateCBRFRates()) или ручной ввод. Конвертация на уровне каталога — покупатель видит цены в своей валюте. Для приёма долларов/евро подключаем Stripe, PayPal. Учитываем комиссии за конвертацию при расчёте маржинальности.
Безопасность
Данные карт обрабатываются на стороне сертифицированного шлюза (PCI DSS) — номер карты никогда не проходит через ваш сервер. Антифрод на уровне агрегатора. Логирование всех событий в b_sale_order_change для аудита. Мониторинг аномалий: скачок транзакций, нетипичная география — алерт.
Как мы работаем и ориентировочные сроки
- Анализ — какие способы оплаты нужны, рынки, объём транзакций, текущий агрегатор.
- Подбор решений — иногда два агрегатора лучше одного: ЮKassa как основной, CloudPayments как резерв — при падении одного трафик уходит на второй.
- Интеграция — тестируем каждый сценарий: успешная оплата, отказ 3DS, таймаут шлюза, двойной callback, частичный возврат.
- Фискализация — онлайн-касса, проверка корректности чеков на тестовых заказах.
- Мониторинг — алерты при сбоях шлюза, дашборд конверсии на этапе оплаты.
| Задача |
Ориентировочный срок |
| Подключение одной платёжной системы |
2–5 дней |
| Комплексная настройка платежей (несколько агрегаторов) |
1–2 недели |
| Подключение онлайн-кассы (54-ФЗ) |
3–5 дней |
| Интеграция рассрочки |
3–5 дней |
| Настройка мультивалютности |
1 неделя |
| Полная платёжная инфраструктура |
3–5 недель |
Что входит в работу
- Полная настройка выбранных платёжных систем в 1С-Битрикс: модули, обработчики, callback, тестирование.
- Документация по интеграции (схема работы шлюзов, описание обработчиков, логи).
- Обучение вашего менеджера работе с платёжными модулями и возвратами.
- Техническая поддержка на этапе запуска и первые 2 недели эксплуатации.
- Мониторинг — настраиваем алерты на ошибки и падение конверсии.
Все работы выполняются сертифицированными разработчиками 1С-Битрикс. Гарантируем работоспособность каждого сценария. Для быстрой оценки вашего проекта получите консультацию — просто оставьте заявку на сайте. Закажите интеграцию платёжных систем под ключ с фискализацией и защитой данных. Свяжитесь с нами, чтобы подобрать оптимальное решение для вашего бизнеса — мы поможем с выбором агрегатора и реализуем полный цикл интеграции.