Интеграция 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 недель под ключ. Стоимость рассчитывается индивидуально — напишите, обсудим.







