БесплатноБесплатный прототип ключевой страницы и черновик ТЗ при старте проекта

Как подключить приём оплаты через Robokassa к интернет-магазину

Подключение приёма оплаты через Robokassa к интернет-магазину на 1С-Битрикс: подписи, ResultURL, 54-ФЗ

Приём онлайн-оплаты — это тот момент, где ошибки стоят реальных денег. Заказ оплачен, а статус не сменился; чек пробит неправильно и не проходит по 54-ФЗ; кто-то подделал уведомление и пометил заказ оплаченным без денег. Robokassa — популярный агрегатор, который закрывает множество способов оплаты одним подключением, но подключить его нужно правильно, иначе перечисленные проблемы прилетают в первый же день.

Эта статья — практическое руководство, как подключить приём оплаты через Robokassa к интернет-магазину на 1С-Битрикс: настройка платёжной системы, контрольные подписи, обработка уведомлений, фискализация по 54-ФЗ и проверка. Подключение платёжных агрегаторов — часть нашей услуги интеграции с CloudPayments и Robokassa.

Коротко

  • Для Robokassa в 1С-Битрикс есть готовый обработчик платёжной системы — интеграцию с нуля писать обычно не нужно.
  • Ключевое — контрольные подписи (Password 1 и 2) и корректная обработка уведомления на ResultURL.
  • Заказ помечается оплаченным по серверному ResultURL, а не по странице SuccessURL.
  • Фискализация по 54-ФЗ требует передавать состав заказа с ценами и ставками НДС.

Что даёт Robokassa магазину

Robokassa — платёжный агрегатор: одно подключение открывает магазину сразу множество способов оплаты — банковские карты, электронные кошельки, оплата по QR и другие. Вместо того чтобы интегрировать каждый банк и сервис по отдельности, магазин подключает один агрегатор и получает широкий набор методов оплаты.

Для интернет-магазина на 1С-Битрикс это удобно вдвойне: агрегатор берёт на себя маршрутизацию платежей и часть требований по безопасности, а фискализация по 54-ФЗ решается в рамках того же подключения. Задача магазина — корректно сформировать платёж, принять и проверить уведомление об оплате и отразить статус в заказе и учёте.

Как устроена оплата: схема

Чтобы правильно настроить подключение, важно понимать поток данных. Оплата через Robokassa проходит по такой схеме:

  1. Формирование платежа. Магазин создаёт заказ и формирует ссылку на оплату с параметрами (сумма, номер заказа) и контрольной подписью.
  2. Переход на оплату. Покупатель уходит на страницу Robokassa и выбирает способ оплаты.
  3. Уведомление на ResultURL. После успешной оплаты Robokassa шлёт серверное уведомление на ResultURL магазина.
  4. Проверка и статус. Магазин проверяет подпись, помечает заказ оплаченным и отвечает подтверждающей строкой.
  5. Возврат покупателя. Покупатель возвращается на SuccessURL (успех) или FailURL (отказ).
Ключевой принцип: источник истины об оплате — это серверное уведомление на ResultURL, а не возврат покупателя на SuccessURL. Покупатель может закрыть вкладку сразу после оплаты и не дойти до SuccessURL — но заказ всё равно должен стать оплаченным по ResultURL.
Путь платежа: от корзины до статуса в 1С Корзинасумма заказаПлатёжный шлюзЮKassa, эквайрингБанкавторизацияПодтверждениеwebhook оплатыСтатус в 1Сзаказ оплачен
Схема: покупатель платит через шлюз, банк авторизует платёж, а webhook возвращает статус — заказ автоматически помечается оплаченным в 1С.

Что подготовить до подключения

Перед настройкой в Битрикс соберите всё необходимое, чтобы не прерываться на полпути:

Настройка платёжной системы в Битрикс

Приём оплаты в 1С-Битрикс настраивается в модуле «Интернет-магазин», раздел «Платёжные системы». Robokassa подключается как обработчик платёжной системы — штатный или установленный из маркетплейса.

  1. Добавьте платёжную систему. Создайте новую платёжную систему и выберите обработчик Robokassa.
  2. Пропишите реквизиты. Идентификатор магазина, Password 1 и Password 2 в соответствующие поля обработчика.
  3. Свяжите со способами оплаты. Привяжите платёжную систему к нужным типам плательщиков и способам оплаты.
  4. Настройте фискализацию. Укажите параметры чека: ставки НДС, признак предмета и способа расчёта.
  5. Задайте адреса возврата. SuccessURL и FailURL — страницы результата для покупателя.

Названия полей зависят от версии обработчика, но логика одинакова: реквизиты магазина, пароли, фискализация и адреса. Наличие товаров и цены в заказе при этом должны быть корректны — они уходят и в чек.

Пароли и контрольные подписи

Безопасность Robokassa строится на контрольных подписях, и это самая важная для понимания часть. Используются два пароля с разным назначением:

ПарольГде применяетсяНазначение
Password 1Формирование ссылки на оплатуПодпись исходящего запроса на оплату
Password 2Проверка уведомления на ResultURLПодтверждение подлинности оплаты

Подпись — это хеш (контрольная сумма) от параметров платежа и соответствующего пароля. При формировании оплаты магазин подписывает запрос Password 1; при получении уведомления — проверяет подпись через Password 2, пересчитывая хеш и сравнивая с присланным. Оба пароля хранятся только на сервере и никогда не попадают во фронтенд. Механику подобных подписей и защиты серверных вызовов мы разбирали в материале про REST, вебхуки и безопасность в Битрикс.

ResultURL, SuccessURL и FailURL

Три адреса определяют, как магазин узнаёт об оплате и куда возвращается покупатель. Путать их роли нельзя.

Классическая ошибка новичков — помечать заказ оплаченным на SuccessURL. Покупатель может не дойти до неё (закрыл вкладку, потерял связь), и тогда оплаченный заказ останется в статусе «ожидает оплаты». Статус меняют строго по ResultURL.

Фискализация по 54-ФЗ

При оплате физическим лицом закон 54-ФЗ требует пробить кассовый чек. Robokassa поддерживает фискализацию, но чек будет верным только если магазин корректно передаёт состав заказа.

Ошибки в фискализации — цены, НДС или состав не совпадают с реальной продажей — приводят к некорректным чекам и претензиям. Данные для чека в идеале берут из учётной системы, чтобы они соответствовали реальной продаже; это зона ответственности связки с 1С.

Тестовый режим и проверка

Запускать приём платежей в бой без теста нельзя. Robokassa даёт тестовый режим, в котором проходят весь путь оплаты без реальных денег. Прогнать нужно все сценарии:

  1. Успешная оплата. Формирование ссылки, оплата, уведомление на ResultURL, смена статуса заказа.
  2. Отказ. Отмена оплаты и возврат на FailURL, заказ остаётся неоплаченным.
  3. Повторное уведомление. Robokassa может прислать уведомление дважды — обработчик должен быть идемпотентным.
  4. Корректность чека. Проверить, что позиции, цены и НДС в чеке верны.
  5. Доступность ResultURL. Убедиться, что адрес доступен извне и отвечает подтверждающей строкой.

Безопасность приёма платежей

Приём денег — привлекательная цель для злоумышленников, поэтому безопасность здесь не опциональна.

Правило: ни одно уведомление об оплате не принимается на веру. Сначала проверка подписи и сверка суммы, только потом смена статуса заказа. Это защита и от подделки, и от случайных ошибок.

Связка с заказами и 1С

Оплата — не конец цепочки. Оплаченный заказ должен корректно отразиться в учёте, а статусы оплаты — быть согласованы между сайтом и 1С.

Устойчивость всей связки зависит и от инфраструктуры: чтобы ResultURL стабильно принимал уведомления, площадка должна быть доступной и быстрой — об этом в статье про хостинг и инфраструктуру BitrixVM. А если приём платежей выкатывается на живой магазин, важен аккуратный процесс деплоя — см. CI/CD и деплой Битрикс.

Частые ошибки

Чек-лист подключения

  1. Реквизиты собраны. Идентификатор магазина, Password 1 и Password 2 получены.
  2. Обработчик настроен. Платёжная система Robokassa добавлена и привязана к способам оплаты.
  3. Подписи работают. Формирование оплаты подписано Password 1, уведомления проверяются Password 2.
  4. Адреса заданы. ResultURL доступен извне и подтверждает уведомление, SuccessURL и FailURL настроены.
  5. Фискализация верна. Состав заказа, цены, НДС и признаки расчёта передаются корректно.
  6. Идемпотентность. Повторные уведомления обрабатываются безопасно.
  7. Тесты пройдены. Успех, отказ, повтор и чек проверены в тестовом режиме.
  8. Связка с 1С. Статус оплаты и данные заказа корректно отражаются в учёте.

Вывод

Подключить Robokassa к магазину на 1С-Битрикс несложно: для платформы есть готовый обработчик, и интеграцию с нуля обычно писать не нужно. Но дьявол в деталях — в контрольных подписях, обработке уведомления на ResultURL и корректной фискализации. Именно здесь кроются потери оплаченных заказов, проблемы с 54-ФЗ и уязвимости.

Настройте подписи с Password 1 и 2, меняйте статус заказа строго по ResultURL, передавайте корректный состав чека и обязательно прогоните все сценарии в тестовом режиме. И не забудьте про связку с 1С, чтобы оплата отражалась в учёте. Сделанный аккуратно приём платежей работает незаметно — а это и есть признак, что всё сделано правильно.

Частые вопросы

Есть ли готовый модуль Robokassa для 1С-Битрикс?

Да, Robokassa — распространённая платёжная система, и для 1С-Битрикс есть обработчик платёжной системы: штатный или из маркетплейса вендора. Он подключается через раздел «Платёжные системы» модуля «Интернет-магазин». В большинстве случаев не нужно писать интеграцию с нуля — достаточно настроить обработчик, прописать идентификатор магазина и контрольные пароли. Кастомная доработка требуется только под нестандартные сценарии.

Что такое контрольные подписи и пароли Robokassa?

Robokassa использует два пароля: Password 1 для формирования подписи запроса на оплату и Password 2 для проверки подписи в уведомлении об успешной оплате. Подпись — это контрольная сумма (хеш) от параметров платежа и пароля. Она защищает от подделки: магазин проверяет, что уведомление действительно пришло от Robokassa, а не подделано. Пароли хранят в секрете и не публикуют в коде фронтенда.

Что такое ResultURL, SuccessURL и FailURL?

Это три адреса, которые магазин передаёт Robokassa. ResultURL — серверный адрес, на который Robokassa шлёт уведомление об оплате; именно по нему магазин помечает заказ оплаченным, и он должен отвечать строкой подтверждения. SuccessURL — страница, куда возвращается покупатель после успешной оплаты. FailURL — страница при отказе. Помечать заказ оплаченным нужно по ResultURL, а не по SuccessURL, потому что до SuccessURL покупатель может не дойти.

Как обеспечить соответствие 54-ФЗ при оплате через Robokassa?

По 54-ФЗ при оплате физлицом нужно пробить кассовый чек. Robokassa поддерживает фискализацию: можно передавать состав заказа (товары, цены, ставки НДС, признак предмета расчёта) в запросе на оплату, и чек формируется на стороне сервиса или подключённой кассы. В настройках магазина на 1С-Битрикс задают параметры фискализации и корректно передают позиции заказа, иначе чек будет неверным.

Нужно ли тестировать оплату перед запуском?

Обязательно. Robokassa предоставляет тестовый режим, в котором проходят весь путь оплаты без реальных денег: формирование ссылки, подпись, уведомление на ResultURL, смена статуса заказа и возврат покупателя. Тестировать нужно и успешную оплату, и отказ, и повторное уведомление, и корректность чека. Запускать приём платежей в бой без прогона тестового сценария — прямой риск потерять заказы или деньги.

Как защититься от поддельных уведомлений об оплате?

Главная защита — проверка контрольной подписи в уведомлении на ResultURL с использованием Password 2. Магазин пересчитывает хеш от суммы, номера заказа и пароля и сравнивает с присланным; при несовпадении уведомление отвергается. Дополнительно проверяют, что сумма и номер заказа совпадают с ожидаемыми, и что заказ ещё не оплачен. Без проверки подписи злоумышленник может пометить заказ оплаченным без реальной оплаты.

Что делать, если заказ оплачен, а статус не сменился?

Чаще всего причина в том, что ResultURL недоступен, отвечает ошибкой или магазин не подтверждает уведомление нужной строкой. Robokassa повторяет уведомления, поэтому важно, чтобы обработчик отвечал корректно и был идемпотентным — повторное уведомление по уже оплаченному заказу не должно ломать логику. Также проверяют логи платёжной системы и доступность ResultURL извне (не закрыт ли он авторизацией или файрволом).

Можно ли передавать в Robokassa данные заказа из 1С?

Да, и это правильный подход для корректной фискализации. Состав заказа, цены, ставки НДС и признаки предмета расчёта в идеале приходят из учётной системы, чтобы чек соответствовал реальной продаже. Заказ, оплаченный через Robokassa, затем должен корректно отразиться в 1С обменом. Связку «оплата — заказ — учёт» настраивают так, чтобы статусы оплаты и данные чеков были согласованы между сайтом и 1С.

Поделиться:

Нужно подключить приём онлайн-оплаты без потерь и рисков?

Настроим Robokassa на 1С-Битрикс: подписи, уведомления, фискализацию по 54-ФЗ и связку с 1С. Проверим все сценарии оплаты и запустим в бой.

Редакция B2Bsite

Команда B2Bsite. С 2014 года разрабатываем интернет-магазины на 1С-Битрикс: подключаем платёжные системы, фискализацию по 54-ФЗ и связку оплаты с заказами и 1С.

← Все статьи блога