Уведомления и переадресация
Оповещение об оплате на 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?MerchantLogin=robo-demo-test&OutSum=10&InvID=1234829&ResultUrl2=https%3A%2F%2Ftest.test%2Frobokassa&SignatureValue=b1c4a749de7617e00e19616118808372
Расчет подписи
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 рекомендуется использовать сертификат, доступный для скачивания по ссылке:
Скачать сертификат.
Проверка не является обязательной, но обеспечивает дополнительный уровень безопасности.
Переадресация при успешной оплате (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&invoiceID=&Receipt=%257B%2522items%2522%253A%255B%257B%2522name%2522%253A%2522%255Cu0422%255Cu0435%255Cu0441%255Cu0442%255Cu043e%255Cu0432%255Cu044b%255Cu0439%2B%255Cu0442%255Cu043e%255Cu0432%255Cu0430%255Cu0440%2522%252C%2522quantity%2522%253A1%252C%2522cost%2522%253A1%252C%2522tax%2522%253A%2522vat0%2522%252C%2522payment_object%2522%253A%2522commodity%2522%257D%255D%257D&SuccessUrl2=https%3A%2F%2Frobokassa.com%2F&SuccessUrl2Method=GET&FailUrl2=https%3A%2F%2Fwww.google.com%2F&FailUrl2Method=GET&SignatureValue=b789721670badc454e3b1a3a1e349fab
Формула подписи
MerchantLogin:OutSum:InvId:Receipt:StepByStep:ResultUrl2:SuccessUrl2:SuccessUrl2Method:FailUrl2:FailUrl2Method:Пароль#1
Пример строки
robo-demo:1::%7B%22items%22%3A%5B%7B%22name%22%3A%22%5Cu0422%5Cu0435%5Cu0441%5Cu0442%5Cu043e%5Cu0432%5Cu044b%5Cu0439+%5Cu0442%5Cu043e%5Cu0432%5Cu0430%5Cu0440%22%2C%22quantity%22%3A1%2C%22cost%22%3A1%2C%22tax%22%3A%22vat0%22%2C%22payment_object%22%3A%22commodity%22%7D%5D%7D:https%3A%2F%2Frobokassa.com%2F:GET:https%3A%2F%2Fwww.google.com%2F:GET:password1
Описание параметров ReturnURL
| Параметр | Значение |
|---|---|
| OutSum | Сумма платежа. |
| InvId | Номер счета в магазине. |
| SignatureValue | Контрольная сумма, рассчитанная методом из технических настроек магазина. |
| Culture | Язык страницы оплаты. |
| Shp_* | Пользовательские параметры, если были переданы. |
Чек-лист перед запуском
- Проверьте, что ResultURL и/или ResultUrl2 доступны из интернета и возвращают
OK{InvId}. - Сверяйте подпись и параметры (
OutSum,InvId,Shp_*) до обновления статуса заказа на стороне магазина. - SuccessURL можно использовать для отображения итоговой страницы, но основное подтверждение приходит на ResultURL.
- Настройте ReturnURL для сценариев с личным кабинетом или iFrame.
- Прогоните минимум один тестовый и один основной платёж.