Робокасса — платёжный агрегатор с большим набором способов оплаты и простым подключением к 1С-Битрикс. Её особенность — авторизация запросов не через API-ключ, а через два пароля и контрольную подпись, поэтому большинство ошибок связано именно с алгоритмом хеширования. Разбираем настройку последовательно.
Как устроена Робокасса
Робокасса — агрегатор, который принимает оплату картами, через СБП, электронные кошельки, интернет-банкинг и рассрочку, а магазину перечисляет деньги единым платежом. Для интернет-магазина это удобно: один договор закрывает десятки способов оплаты.
В 1С-Битрикс за интеграцию отвечает штатный обработчик платёжной системы roboxchange в модуле sale. Логика простая: сайт формирует ссылку на оплату с контрольной подписью, покупатель платит на стороне Робокассы, а сервис уведомляет магазин о результате.
- Инициализация платежа — редирект на
auth.robokassa.ruс параметрами и подписью. - Result URL — Робокасса уведомляет сайт об оплате (главный сигнал).
- Success / Fail URL — куда возвращается покупатель после оплаты или отказа.
Реквизиты из личного кабинета
После регистрации магазина в кабинете Робокассы получите четыре значения. Именно они настраиваются в Битрикс:
| Параметр | Назначение |
|---|---|
| MerchantLogin | Идентификатор магазина (логин) |
| Пароль #1 (Pass1) | Подпись при инициализации платежа |
| Пароль #2 (Pass2) | Проверка подписи в Result URL |
| Алгоритм подписи | MD5, SHA1, SHA256 и др. |
Настройка платёжной системы в Битрикс
Открываем Магазин → Платёжные системы → Добавить, выбираем обработчик Робокассы и заполняем поля:
- MerchantLogin — логин магазина.
- Пароль #1 и Пароль #2 — строго на свои места.
- Алгоритм подписи — тот же, что выбран в кабинете Робокассы.
- Тестовый режим — на время отладки включаем.
Привяжите платёжную систему к нужным способам оплаты покупателя и валюте. Если алгоритм подписи в Битрикс и в кабинете различается (например, в кабинете SHA256, а в модуле MD5), подпись не сойдётся и оплата будет отклонена.
Контроль подписи и Result URL
Подпись — сердце интеграции с Робокассой. При инициализации платежа Битрикс считает хеш от строки вида MerchantLogin:OutSum:InvId:Пароль#1. Робокасса пересчитывает его на своей стороне и, если значения совпадают, показывает форму оплаты.
После оплаты сервис отправляет запрос на Result URL. В кабинете Робокассы укажите адрес обработчика Битрикс, обычно:
https://ваш-домен.ru/bitrix/tools/sale_ps_result.php
В уведомлении Result URL подпись считается уже с Паролем #2. Модуль сверяет её, проверяет сумму и номер заказа (InvId) и выставляет флаг «Оплачен». Обработчик обязан ответить строкой OK{InvId}, иначе Робокасса будет повторять уведомление.
- Метод обмена (GET/POST) для Result URL должен совпадать с настройкой в кабинете.
- InvId должен быть числовым и уникальным — в Битрикс это, как правило, ID счёта на оплату.
- Если оплаты не проходят — включите логирование и сверьте строку подписи.
Фискализация по 54-ФЗ
Если продаёте физлицам, при оплате нужен фискальный чек. Робокасса поддерживает фискализацию на своей стороне: в запрос на оплату передаётся параметр Receipt с составом заказа, ставками НДС и признаками расчёта.
В Битрикс состав чека собирается из позиций заказа и доставки. Критично корректно задать по каждому товару:
- Ставку НДС — 0%, 10%, 20% или «без НДС».
- Признак предмета расчёта — товар, услуга, платёж и т.д.
- Признак способа расчёта — полная оплата, предоплата, аванс.
| Кто пробивает чек | Условие |
|---|---|
| Робокасса (аренда ККТ) | Нет своей онлайн-кассы |
| Своя касса через ОФД | Есть ККТ, чек формирует Битрикс |
Тестирование и запуск
Перед боевым запуском обязательно прогоняем сценарии в тестовом режиме. Робокасса даёт отдельный набор тестовых паролей — с ними реальные деньги не списываются.
- Создаём тестовый заказ и переходим к оплате.
- Проверяем корректность суммы и состава чека на форме.
- Оплачиваем тестовой картой и убеждаемся, что пришёл Result URL и заказ стал оплаченным.
- Проверяем возврат покупателя по Success URL.
Итог
Робокасса подключается к 1С-Битрикс через штатный обработчик roboxchange, но требует внимательности к двум паролям, алгоритму подписи и настройке Result URL. Большинство проблем — это несовпадение подписи или перепутанные пароли, а не «поломка» модуля.
Мы в B2Bsite подключаем Робокассу и другие агрегаторы с полной проверкой подписи, фискализации по 54-ФЗ и сценариев возврата, а связку сдаём после прогона реальных транзакций. Если хотите принимать оплату без ручной сверки и потерянных заказов — поможем настроить.
Частые вопросы
Чем Пароль #1 отличается от Пароля #2?
Пароль #1 участвует в подписи при инициализации платежа (создании ссылки на оплату), а Пароль #2 — в проверке подписи в уведомлении Result URL. Их нельзя менять местами, иначе оплата инициируется, но заказ не станет оплаченным.
Какой алгоритм подписи выбрать?
Любой из поддерживаемых (MD5, SHA1, SHA256 и др.), но он должен строго совпадать в кабинете Робокассы и в настройках модуля Битрикс. Для новых магазинов лучше выбирать SHA256 как более стойкий.
Робокасса не помечает заказ оплаченным — в чём причина?
Чаще всего не совпадает контрольная подпись в Result URL: неверный Пароль #2, другой алгоритм или кодировка. Проверьте также доступность обработчика sale_ps_result.php и что он возвращает строку OK с номером заказа.
Поддерживает ли Робокасса оплату по СБП?
Да, СБП доступна как один из способов оплаты внутри Робокассы наряду с картами, кошельками и интернет-банкингом. Отдельной интеграции на стороне Битрикс для этого не требуется.
Нужно ли пробивать чеки при оплате через Робокассу?
Если вы продаёте физлицам, чек обязателен по 54-ФЗ. Робокасса умеет фискализировать на своей стороне через параметр Receipt, либо чек пробивает ваша касса через кассовую подсистему Битрикс.
Как протестировать оплату без реальных денег?
Используйте тестовый режим и тестовые пароли из кабинета Робокассы. В этом режиме списаний не происходит, но вы можете проверить весь путь: инициализацию, оплату, Result URL и возврат покупателя.
Что такое InvId и почему он должен быть уникальным?
InvId — числовой номер счёта, который передаётся в Робокассу и возвращается в уведомлении. Он должен быть уникальным, иначе сервис не сможет корректно сопоставить оплату с конкретным заказом.
Поможем с настройкой и поддержкой Интеграции и связки систем
Поможем с настройкой, доработкой и поддержкой Интеграции и связки систем.