Robokassa
Продукт: Shelter Cloud | Уровень: Shelter | Статус: Stable
ID системы: 16
Описание
Интеграция с платёжной системой Robokassa — одним из крупнейших российских платёжных агрегаторов. Поддерживает множество способов оплаты и фискализацию.
Настройка в Shelter Cloud
Параметры учётной записи настраиваются через PrivateSettings:
| Параметр | Описание |
|---|---|
| ShopID | Идентификатор магазина (MerchantLogin) |
| SecretKey1 | Пароль #1 (для формирования подписи) |
| SecretKey2 | Пароль #2 (для проверки callback) |
| Receipt | Формировать фискальный чек (true / false) |
| TaxSystem | Система налогообложения: osn, usn_income, usn_income_outcome, envd, esn, patent |
| Currency | Валюта: RUB, USD, EUR, KZT |
| IsTest | Тестовый режим (true / false) |
Конфигурация сервиса (appsettings.json)
| Параметр | Описание |
|---|---|
| IPWhiteList | Список разрешённых IP для callback. Доступ: отдел разработки |
API Endpoints
Регистрация платежа
| Среда | URL |
|---|---|
| Production | https://auth.robokassa.ru/Merchant/Indexjson.aspx? |
| Test | https://auth.robokassa.ru/Merchant/Indexjson.aspx?IsTest=1 |
Callback
URL для callback: https://cloud.shelter.ru/Robokassa/Result
Алгоритм подписи
Алгоритм: MD5
Подпись запроса на оплату
SignatureValue = MD5(
MerchantLogin + ":" + OutSum + ":" + InvId + ":" +
[Receipt + ":"] + SecretKey1 + ":" +
"Shp_cashId=" + Shp_cashId + ":" +
"Shp_orderGUID=" + Shp_orderGUID + ":" +
"Shp_resId=" + Shp_resId
).toLowerCase()
Подпись callback (Result)
SignatureValue = MD5(
OutSum + ":" + InvId + ":" + SecretKey2 +
":Shp_cashId=" + Shp_cashId +
":Shp_orderGUID=" + Shp_orderGUID +
":Shp_resId=" + Shp_resId
).toLowerCase()
Процесс оплаты
- Клиент нажимает «Оплатить»
- Формирование данных для виджета
- Вычисление SignatureValue
- POST на auth.robokassa.ru
- Получение URL для оплаты
- Редирект клиента на страницу оплаты
- После оплаты — callback на /Result
- Проверка подписи и IP
- Запись платежа
Коды НДС (tax)
| Код | Описание |
|---|---|
| none | Без НДС |
| vat0 | НДС 0% |
| vat5 | НДС 5% |
| vat7 | НДС 7% |
| vat10 | НДС 10% |
| vat20 | НДС 20% |
Поддерживаемые валюты
| Код | Валюта |
|---|---|
| RUB | Российский рубль (по умолчанию) |
| USD | Доллар США |
| EUR | Евро |
| KZT | Казахстанский тенге |
Мониторинг (Zabbix)
Health check URL: https://cloud.shelter.ru/Robokassa/
Логирование
Все события логируются в Graylog (channel: Robokassa).
Примеры сообщений при callback
Получен callback:
Оплата: POST /Robokassa/Result OutSum=5000.00&InvId=12345&Shp_cashId=100&Shp_orderGUID=abc-123&Shp_resId=200&SignatureValue=ABC123
Успешная оплата:
Оплата успешно: 100
Ошибка подписи:
Ошибка оплаты: Сформированная сигнатура 'XYZ789' не совпадает с полученной 'ABC123'
IP не в whitelist:
Ошибка оплаты: не допустимый ip адрес
Устранение неполадок
Ошибка «Неверная подпись» при callback
Причина: Неправильно указан SecretKey2.
Решение:
- Проверьте пароль #2 в настройках магазина
- Убедитесь, что Shp-параметры в подписи совпадают
Платёж не регистрируется
Решение:
- Проверьте порядок параметров в подписи
- Убедитесь, что Receipt правильно URL-encoded
- Проверьте SecretKey1
Callback приходит с незнакомого IP
Решение:
- Проверьте актуальный список IP на сайте Robokassa
- Добавьте новые диапазоны в IPWhiteList