Уведомления и переадресация
Оповещение об оплате на 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 за совершение операции. Удерживается согласно тарифу клиента. |
| Email, указанный покупателем при оплате. | |
| 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_* | Пользовательские параметры, если были переданы. |
Чек-лист перед запуском
- Проверьте, что ResultURL и/или ResultUrl2 доступны из интернета и возвращают
OK{InvId}. - Сверяйте подпись и параметры (
OutSum,InvId,Shp_*) до обновления статуса заказа на стороне магазина. - SuccessURL можно использовать для отображения итоговой страницы, но основное подтверждение приходит на ResultURL.
- Настройте ReturnURL для сценариев с личным кабинетом или iFrame.
- Прогоните минимум один тестовый и один основной платёж.