Перейти к основному содержимому

Уведомления и переадресация

Оповещение об оплате на ResultURL

ResultURL предназначен для получения вашим сайтом оповещения об успешном платеже в автоматическом режиме.
В случае успешной оплаты Robokassa делает запрос на ResultURL (см. раздел «Технические настройки» в личном кабинете).
Данные всегда передаются в кодировке UTF-8.

Ваш скрипт, находящийся по адресу ResultURL, обязан проверить равенство полученной контрольной суммы и контрольной суммы, рассчитанной вашим скриптом по параметрам, полученным от Robokassa.

Если контрольные суммы совпали, скрипт должен ответить Robokassa текстом OK{InvId} (например, OK5).
Если контрольные суммы не совпали, уведомление считается некорректным.

Если выбран способ уведомления E-mail, Robokassa отправит письмо на адрес, указанный в поле ResultURL, с теми же параметрами.

Важно: Если используете фильтрацию входящих запросов, пропишите IP-адреса Robokassa в белый список: 185.59.216.65, 185.59.217.65.

Описание параметров ResultURL

ПараметрЗначение
OutSumСумма платежа.
InvIdНомер счета в магазине.
FeeКомиссия Robokassa за совершение операции. Удерживается согласно тарифу клиента.
EMailEmail, указанный покупателем при оплате.
SignatureValueКонтрольная сумма — хэш, число в 16-ричной форме (0–9, A–F), рассчитанное методом, указанным в технических настройках магазина.
PaymentMethodСпособ оплаты, использованный пользователем.
IncCurrLabelВалюта, которой платил клиент.
Shp_*Пользовательские параметры, возвращаются, если были переданы при старте платежа.

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

База для расчёта контрольной суммы:

  • Без пользовательских параметров: OutSum:InvId:Пароль#2
  • С пользовательскими параметрами: OutSum:InvId:Пароль#2:[Shp_*]

Пример:

OutSum=100.000000  
InvId=450009
Shp_login=Vasya
Shp_oplata=1

База для подписи:

100.000000:450009:Пароль#2:Shp_login=Vasya:Shp_oplata=1

Дополнительное оповещение об оплате на ResultUrl2

ResultUrl2 — дополнительное уведомление об успешной оплате, позволяющее получить данные на альтернативный адрес.
Для операций с холдами на этот адрес направляется уведомление о предавторизации (единственный способ его получить).

Уведомление отправляется методом POST вне зависимости от выбранного метода для ResultURL.

Пример запроса

https://auth.robokassa.ru/merchant/Index.aspx?Merchant_login=robokassa&OutSum=10&InvID=1234829&ResultUrl2=https%3A%2F%2Ftest.test%2Frobokassa&Signature=8e8596d1219ff89cbb98d5f3f37bcfc5

Расчет подписи

MerchantLogin:OutSum:InvId:Receipt:StepByStep:ResultUrl2:Пароль#1

Пример строки

robokassa:10:1234829:https%3A%2F%2Ftest.test%2Frobokassa:password1

Формат уведомления (JWS)

Уведомление отправляется в формате JWS (JSON Web Signature), закодированном в base64.

Пример уведомления

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJoZWFkZXIiOnsidHlwZSI6IlBheW1lbnRTdGF0ZU5vdGlmaWNhdGlvbiIsInZlcnNpb24iOiIxLjAuMCIsInRpbWVzdGFtcCI6IjE2OTA0NTQ5ODAifSwiZGF0YSI6eyJzaG9wIjoicm9iby1kZW1vLXRlc3QiLCJvcEtleSI6IjE0RDJCNTIxLTRFQUItNDkyQS05RDkxLTAwRDEyRkYyNEQ1Ny0xTnZIRU5Md2dwIiwiaW52SWQiOiIxMjM0ODI5IiwicGF5bWVudE1ldGhvZCI6IkJhbmtDYXJkIiwiaW5jU3VtIjoiMTAuMDAiLCJzdGF0ZSI6Ik9LIn19.DaanjJ4A2yaGOppIVEj929MGNWU4jHcjAh4_DnFRJzkqvESbVpN5trGg8OlaftyQEldxeQaTF9ykrS7O1BmhPow0ZRv4GwjJQSwHzCGJUOcyVw507PMnRSAIT4oXq_PtKjqjuHQL_bxQxyGxZORoKhzsDwBYl_nMXsY-R_SCXPfvYRDPeJRRlC-HwQscOzyGN1cBHStuh5-w8qHytpaysVlif_XYK1-Lfa3ZsFjNz-2LENGL4CRmKMA2KhUfhNfNWXSA4J2KykfWznAvaY37T__QQHhDyHuIjsUtstG5Jf2aK2CuJY-i9mBTRkXD0U3Y5Lh7lnJQrkXAMBySRvYigQ

Декодированный JSON

{
"header": {
"type": "PaymentStateNotification",
"version": "1.0.0",
"timestamp": "1691186412"
},
"data": {
"shop": "robokassa",
"opKey": "14D2B521-4EAB-492A-9D91-00D12FF24D57-1NvHQWRwf",
"invId": "1234829",
"paymentMethod": "BankCard",
"incSum": "10.00",
"state": "OK"
}
}

Описание параметров ResultUrl2

ПараметрЗначение
ShopИдентификатор магазина.
OpKeyУникальный идентификатор операции.
InvIdНомер счета в магазине.
PaymentMethodСпособ оплаты, использованный пользователем.
incSumСумма, оплаченная клиентом.
StateТекущее состояние оплаты.

Проверка подписи:
Для проверки JWS можно использовать сертификат result_sign_cert.cer. Проверка не обязательна, но обеспечивает дополнительную безопасность.


Переадресация при успешной оплате (SuccessURL)

После успешной оплаты покупатель перенаправляется на SuccessURL, указанный в настройках магазина.
Переход осуществляется методом GET или POST — в зависимости от ваших настроек.

Описание параметров SuccessURL

ПараметрЗначение
OutSumСумма, оплаченная покупателем.
InvIdНомер счета в магазине.
SignatureValueКонтрольная сумма — хэш, рассчитанный методом из технических настроек магазина.
CultureЯзык интерфейса оплаты (ru/en).
Shp_*Пользовательские параметры, если были переданы.

Формула подписи:

  • Без пользовательских параметров: OutSum:InvId:Пароль#1
  • С параметрами: OutSum:InvId:Пароль#1:Shp_*

Дополнительная переадресация (ReturnURL: SuccessUrl2 / FailUrl2)

Позволяет настроить дополнительные страницы возврата для успешной и неуспешной оплаты.

Пример запроса

https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=robo-demo&OutSum=1&SuccessUrl2=https%3A%2F%2Frobokassa.com%2F&FailUrl2=https%3A%2F%2Fwww.google.com%2F&SignatureValue=b789721670badc454e3b1a3a1e349fab

Формула подписи

MerchantLogin:OutSum:InvId:Receipt:StepByStep:ResultUrl2:SuccessUrl2:SuccessUrl2Method:FailUrl2:FailUrl2Method:Пароль#1

Описание параметров ReturnURL

ПараметрЗначение
OutSumСумма платежа.
InvIdНомер счета в магазине.
SignatureValueКонтрольная сумма, рассчитанная методом из технических настроек магазина.
CultureЯзык страницы оплаты.
Shp_*Пользовательские параметры, если были переданы.

Чек-лист перед запуском

  1. Проверьте, что ResultURL и/или ResultUrl2 доступны из интернета и возвращают OK{InvId}.
  2. Сверяйте подпись и параметры (OutSum, InvId, Shp_*) до обновления статуса заказа на стороне магазина.
  3. SuccessURL можно использовать для отображения итоговой страницы, но основное подтверждение приходит на ResultURL.
  4. Настройте ReturnURL для сценариев с личным кабинетом или iFrame.
  5. Прогоните минимум один тестовый и один основной платёж.