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()

Процесс оплаты

  1. Клиент нажимает «Оплатить»
  2. Формирование данных для виджета
  3. Вычисление SignatureValue
  4. POST на auth.robokassa.ru
  5. Получение URL для оплаты
  6. Редирект клиента на страницу оплаты
  7. После оплаты — callback на /Result
  8. Проверка подписи и IP
  9. Запись платежа

Коды НДС (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.

Решение:

  1. Проверьте пароль #2 в настройках магазина
  2. Убедитесь, что Shp-параметры в подписи совпадают

Платёж не регистрируется

Решение:

  1. Проверьте порядок параметров в подписи
  2. Убедитесь, что Receipt правильно URL-encoded
  3. Проверьте SecretKey1

Callback приходит с незнакомого IP

Решение:

  1. Проверьте актуальный список IP на сайте Robokassa
  2. Добавьте новые диапазоны в IPWhiteList

Связанная документация