ChronoPay — международный платёжный провайдер с готовым обработчиком в модуле sale. Подключение сводится к трём вещам: завести платёжную систему в админке, прописать параметры мерчанта (Product ID и shared secret) и настроить обратный callback, по которому Битрикс переведёт заказ в статус «оплачен».
Что такое обработчик ChronoPay и когда он нужен
ChronoPay работает по классической схеме redirect-эквайринга: покупатель уходит на платёжную страницу провайдера, вводит данные карты там, а магазин получает только результат — успех или отказ. Карточные данные на вашем сайте не хранятся, что снимает основную часть требований PCI DSS.
В 1С-Битрикс для ChronoPay есть штатный обработчик платёжной системы — отдельный класс в модуле sale. Вам не нужно писать интеграцию с нуля: достаточно создать платёжную систему на базе этого обработчика и заполнить реквизиты, которые выдал провайдер в личном кабинете.
- Product ID — идентификатор товара/сайта в системе ChronoPay;
- Shared secret — секретное слово для формирования и проверки MD5-подписи;
- Валюта платежа (обычно совпадает с валютой заказа);
- URL callback — адрес на вашем сайте, куда ChronoPay сообщает о статусе.
Что подготовить до настройки
Перед тем как открывать админку, соберите доступы и определитесь с окружением. Половина проблем при подключении — из-за того, что реквизиты берут из тестового кабинета, а работают на боевом.
- Договор с ChronoPay и активированный аккаунт мерчанта.
- Product ID и shared secret из личного кабинета провайдера.
- Согласованные с менеджером ChronoPay адреса возврата: success/fail URL и URL для служебного уведомления (callback).
- Работающий HTTPS на домене — без валидного сертификата платёжная страница и колбэки корректно работать не будут.
Создание платёжной системы в админке
Зайдите в Магазин → Настройки → Платёжные системы (в старых сборках — Сервисы → Платёжные системы) и нажмите «Добавить платёжную систему».
Заполните базовые поля карточки:
- Название и код — например,
chronopay; по этому коду систему потом привязывают к типам плательщиков; - Обработчик — выберите ChronoPay из списка;
- Тип плательщика — отметьте те, для кого будет доступна оплата картой (обычно «Физическое лицо»);
- Активность — включите, когда закончите с реквизитами.
После выбора обработчика Битрикс подставит его настроечную форму — набор полей, которые описаны в файле профиля обработчика. Именно там вводятся Product ID, shared secret и валюта.
Параметры обработчика и MD5-подпись
Обработчик ChronoPay при формировании платежа собирает строку из параметров заказа и вычисляет по ней контрольную сумму MD5 с использованием shared secret. Провайдер повторяет тот же расчёт на своей стороне — если суммы не совпадают, платёж отклоняется. Поэтому реквизиты нужно вводить символ в символ.
| Параметр | Назначение |
|---|---|
| Product ID | идентификатор мерчанта/сайта в ChronoPay |
| Shared secret | секрет для расчёта и проверки подписи |
| Currency | валюта платежа (должна совпадать с валютой заказа) |
| Сумма заказа | берётся из свойства оплаты, обычно PAYMENT_SHOULD_PAY |
В настроечной форме почти каждое поле можно задать двумя способами: «Из настроек» — фиксированное значение (так вводят Product ID и secret) или «Из свойства заказа» — динамическая привязка к полю заказа (так подставляют сумму, валюту, номер заказа). Проверьте, что сумма и валюта берутся именно из заказа, а не заданы константой.
/bitrix/php_interface/include/sale_payment/ и правят там, не трогая ядро.Настройка callback и статуса оплаты
Redirect покупателя обратно на сайт — это ещё не оплата. Факт списания магазин узнаёт из служебного callback (server-to-server уведомления), который ChronoPay отправляет на заранее согласованный URL. Результирующая страница обработчика принимает этот запрос, повторно считает MD5-подпись и сверяет её с присланной.
- ChronoPay шлёт POST/GET на URL результата с параметрами платежа и подписью.
- Обработчик проверяет подпись по shared secret — так отсекаются поддельные уведомления.
- При совпадении вызывается регистрация оплаты, и заказ переходит в статус «оплачен» (
PAYED = Y).
Адрес callback указывается в личном кабинете ChronoPay, а не только в Битрикс. Обычно это путь вида /bitrix/tools/sale_ps_result.php с параметрами, идентифицирующими платёжную систему и заказ.
Тестирование и запуск в бой
Прогоните полный цикл в тестовом окружении провайдера прежде, чем включать приём реальных карт. Тестовый режим у ChronoPay задаётся отдельными реквизитами (тестовый Product ID/secret) и тестовыми номерами карт из документации провайдера.
- Оформите заказ и убедитесь, что открывается платёжная страница с корректной суммой и валютой;
- Проведите оплату тестовой картой и проверьте, что callback пришёл, а заказ перешёл в «оплачен»;
- Проверьте сценарий отказа — заказ должен остаться неоплаченным без ошибок;
- Загляните в
Магазин → Настройки → Журнали в/bitrix/modules/sale/pay_system.log(если логирование включено), чтобы увидеть входящие запросы.
При переключении на боевые реквизиты не забудьте сменить и адреса callback в кабинете ChronoPay на production-домен, а также отключить тестовый режим в карточке платёжной системы.
Типичные проблемы и диагностика
Большинство инцидентов на ChronoPay диагностируются по одному и тому же принципу — сверить, что ушло на провайдера, с тем, что вернулось.
| Симптом | Вероятная причина |
|---|---|
| Подпись не совпадает | неверный shared secret, лишние пробелы, другой порядок полей |
| Заказ не оплачивается | callback не доходит (закрыт извне, редирект, 403 от WAF) |
| Неверная сумма на странице | сумма задана константой, а не из свойства заказа |
| Оплата в чужой валюте | валюта заказа не совпадает с параметром Currency |
Полезно временно включить логирование обработчика и посмотреть сырые параметры входящего callback. Если запрос вообще не появляется в логах — проблема сетевая: проверьте доступность URL результата с внешнего хоста и правила фаервола/WAF, которые могут блокировать серверные запросы провайдера.
Итог
Подключение ChronoPay к 1С-Битрикс — это создание платёжной системы на штатном обработчике, аккуратный ввод Product ID и shared secret, настройка обратного callback и обязательный прогон полного цикла в тесте. Ключевые точки риска — MD5-подпись и доставка callback: именно из-за них деньги списываются, а заказ остаётся неоплаченным.
Если нужно подключить ChronoPay без простоев, доработать нестандартную подпись или свести несколько платёжных систем в один магазин, мы возьмём настройку и тестирование на себя — от карточки платёжной системы до боевого запуска и мониторинга колбэков.
Частые вопросы
Есть ли готовый обработчик ChronoPay в 1С-Битрикс?
Да, в модуле sale есть штатный обработчик платёжной системы ChronoPay. Отдельную интеграцию писать не нужно — достаточно создать платёжную систему на его основе и заполнить реквизиты мерчанта.
Какие реквизиты нужны для подключения?
Product ID и shared secret из личного кабинета ChronoPay, а также согласованные URL успеха, отказа и служебного callback. Всё это выдаёт провайдер после активации аккаунта.
Зачем нужен shared secret?
Это секретное слово для расчёта MD5-подписи. По ней ChronoPay и Битрикс проверяют, что данные платежа не подменены. При несовпадении подписи платёж или уведомление отклоняются.
Почему деньги списались, а заказ не оплачен?
Чаще всего до сайта не дошёл callback или не сошлась подпись. Проверьте доступность URL результата извне, правила WAF и точность shared secret на боевых реквизитах.
Хранит ли мой сайт данные карт?
Нет. ChronoPay работает по redirect-схеме: покупатель вводит карту на стороне провайдера, а магазин получает только статус платежа. Это снимает основную часть требований PCI DSS.
Как протестировать оплату перед запуском?
Используйте тестовые Product ID и secret, а также тестовые карты из документации ChronoPay. Прогоните успешную оплату и отказ, проверьте приход callback и переход заказа в статус «оплачен».
Где указывается адрес callback?
Сам путь результата ведёт на скрипт Битрикс, а вот его адрес нужно прописать в личном кабинете ChronoPay. При переходе на боевой домен адрес callback обязательно обновляют.
Подходит ли ChronoPay для рублёвых платежей внутри РФ?
Технически да, но ChronoPay силён в трансграничных и мультивалютных платежах. Для оборота только в рублях локальный эквайер обычно выгоднее по комиссии и проще в поддержке.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.