Модули к CMS для платежной системы

модули и плагины платежной системы для упрощения приёма средств

О проекте

Платежные модули, для быстрой установки в движки сайтов 1С-Битрикс и WordPress. Для быстрой интеграции платежной системы с этими CMS. Мы не можем сообщить название платежной системы, так как оно закрыто соглашением о неразглашении (NDA).

ЗАДАЧА Крупный платёжный агрегатор, закрытый соглашением о неразглашении, поставил задачу упростить приём средств для владельцев интернет-магазинов на двух самых востребованных CMS российского рынка — 1С-Битрикс и WordPress. Партнёры и клиенты платёжной системы регулярно запрашивали готовые модули, чтобы не тратить ресурсы на ручную интеграцию REST API каждый раз при запуске нового проекта. Бизнес-цели выглядели так: Создать официальные плагины, устанавливаемые в административной панели буквально в несколько кликов. Обеспечить совместимость с широким парком версий CMS, включая устаревшие редак

ЗАДАЧА

Крупный платёжный агрегатор, закрытый соглашением о неразглашении, поставил задачу упростить приём средств для владельцев интернет-магазинов на двух самых востребованных CMS российского рынка — 1С-Битрикс и WordPress. Партнёры и клиенты платёжной системы регулярно запрашивали готовые модули, чтобы не тратить ресурсы на ручную интеграцию REST API каждый раз при запуске нового проекта.

Бизнес-цели выглядели так:

  • Создать официальные плагины, устанавливаемые в административной панели буквально в несколько кликов.
  • Обеспечить совместимость с широким парком версий CMS, включая устаревшие редакции «Битрикса», которые до сих пор работают у многих средних и крупных ритейлеров.
  • Поддержать полный цикл транзакций: оплата, холдирование, возвраты, частичные возмещения, проверка статуса, логирование ошибок.
  • Пройти модерацию и опубликовать модули в официальных маркетплейсах — 1С‑Битрикс Маркетплейс и WordPress Plugin Directory.

Отдельным требованием было безупречное соблюдение стандартов безопасности: исключение хранения чувствительных данных на стороне CMS, защита от MITM-атак, проверка подлинности колбэков с использованием цифровой подписи.

РЕШЕНИЕ

Архитектурно оба модуля построены вокруг единого SDK платёжной системы, инкапсулирующего работу с REST API. Это позволило избежать дублирования бизнес-логики и ускорить обновления при изменении методов API. Коммуникация с ядром CMS выстроена через штатные механизмы расширения: хуки и шорткоды в WordPress, события, компоненты и модули в 1С‑Битрикс.

Ключевые особенности принятого решения:

  • Бесшовная настройка. Пользователь вводит идентификатор магазина и секретный ключ, остальные параметры мастер конфигурации подгружает автоматически. Для Битрикса реализована поддержка нескольких платёжных систем внутри одного модуля, если мерчант работает с разными шлюзами.
  • Двухфазное уведомление о статусе платежа. Кроме синхронного ответа после оплаты модуль обрабатывает асинхронные callback‑запросы. Колбэк защищён проверкой HMAC‑подписи и фильтром IP‑адресов, заданных в админке, что соответствует требованиям PCI DSS.
  • Журналирование. Все этапы — запрос, ответ, колбэк, ошибка валидации — пишутся в лог, доступный в интерфейсе CMS. При включённом режиме отладки администратор видит полные дампы запросов, что сокращает время диагностики на стороне техподдержки.
  • Автоматическая синхронизация справочников. Модуль периодически запрашивает у API актуальный список валют, платежных методов и статусов, чтобы интерфейс всегда отражал реальные возможности агрегатора.

Для WordPress управление вынесено в отдельную вкладку «Платежи», где собраны настройки, лог и быстрые действия (например, проверка соединения с API). Для 1С‑Битрикс модуль встраивается в стандартный интерфейс магазина — через административный раздел «Магазин / Настройки / Платёжные системы» и через компонент оформления заказа, работая на уровне ядра.

РЕАЛИЗАЦИЯ

Проект выполнен итеративно, с акцентом на тестирование в изолированных средах. Стек: PHP 7.4–8.2 (с обратной совместимостью), Git, Docker‑контейнеры с фиксированными версиями CMS и баз данных, CI‑пайплайны на базе Jenkins для автоматического прогона регрессионных тестов при каждом коммите.

Подготовительный этап

Изучили документацию платёжного API — порядка 60 эндпоинтов. Собрали требования к совместимости: для WordPress — с версии 5.0 до последней, для Битрикса — начиная с редакции 14.0, включая «Малый бизнес», «Бизнес» и «Энтерпрайз». Составили матрицу версий PHP и MySQL, поддерживаемых каждой редакцией.

Разработка ядра SDK

Создали прослойку на PHP, которая берёт на себя формирование корректных HTTP‑запросов, сериализацию/десериализацию JSON, обработку сетевых тайм‑аутов и повтор запросов при 5xx‑ошибках. SDK покрыли модульными тестами (PHPUnit), имитирующими ответы API.

Модуль для WordPress

Плагин реализован в объектно‑ориентированном стиле. Использованы экшены woocommerce_payment_gateways для бесшовной интеграции с WooCommerce и собственные шорткоды для сайтов без WooCommerce. Административный интерфейс построен на Settings API, что гарантирует совместимость с будущими версиями ядра. Выполнена локализация на русский и английский языки, файлы перевода загружаются через GlotPress.

Модуль для 1С‑Битрикс

Наиболее трудоёмкая часть проекта. Битрикс имеет строгую архитектуру модулей, требующую обязательного наличия файла include.php, класс‑обработчика, регистрации событий в /bitrix/php_interface/init.php. Мы написали модуль, который:

  • Регистрирует платёжную систему через событие onSalePsBeforeSave, добавляя кастомный обработчик в список доступных.
  • Предоставляет собственный компонент оплаты, встраиваемый в цепочку оформления заказа, и корректно обрабатывает редирект на сторону агрегатора.
  • Совместимость с версиями 14–23: для устаревших редакций применяются фасадные классы, оборачивающие различия в API ядра (например, в работе с заказом до появления D7).

Тестирование на старых версиях потребовало поиска дистрибутивов, уже снятых с поддержки. Мы развернули парк из 26 окружений: все комбинации редакций Битрикса, PHP 5.6/7.4/8.1, MySQL 5.7/8.0. Каждое изменение кода прогонялось через автотесты на всей матрице. Отдельно проверялись сценарии с возвратами, частичными refund’ами, холдированием двухстадийной оплаты, устареванием заказа.

Подготовка к публикации

Оформили страницы модулей в маркетплейсах: создали руководства пользователя, FAQ, скриншоты каждого шага мастера настройки. Прошли аудит безопасности со стороны платформы: в WordPress Plugin Directory проверялись экранирование вывода, использование nonce‑полей, отсутствие уязвимостей типа XSS; в Маркетплейсе 1С‑Битрикс эксперты инспектировали структуру модуля и соответствие «правилам написания качественного кода». Параллельно клиент вносил модули в реестр своих интеграционных решений и снабдил их уникальными ID для отслеживания установок.

РЕЗУЛЬТАТ

Оба модуля успешно прошли модерацию и опубликованы в официальных каталогах. Теперь любой владелец сайта на WordPress или 1С‑Битрикс может подключить приём платежей менее чем за 5 минут, просто скачав плагин и введя ключи доступа. По данным обратной связи, время интеграции сократилось с нескольких дней (при ручной реализации) до десятков минут, а количество обращений в техподдержку по вопросам API снизилось на 40% в первые два месяца после релиза.

Для заказчика мы обеспечили:

  • Полное покрытие двух ключевых CMS, на которых работает более 65% коммерческих сайтов в целевых регионах.
  • Стабильную работу на всех востребованных версиях, включая устаревшие редакции 1С‑Битрикс, что открыло доступ к крупным клиентам с долгой историей эксплуатации своих платформ.
  • Готовые шаблоны для следующих CMS — благодаря изолированному SDK масштабирование на другие движки требует минимальных затрат.
  • Прозрачный мониторинг установок и сбор метрик через систему обновлений модулей, что позволяет бизнесу видеть реальную востребованность продукта.

Проект подтвердил, что даже при строгих ограничениях совместимости и NDA можно создать качественные плагины, объединяющие надёжность enterprise‑уровня с простотой пользовательского опыта.

• Реализовано под задачи бизнеса • Учтены интеграции и нагрузка • Поддержан запуск и развитие