Получение данных о платеже
Уведомления об операциях — рекомендуемый сценарий получения информации об основных параметрах платежа.
Уведомления об операциях — это уведомления мерчанту о статусе выполнения платежа. На основании этих уведомлений магазин должен предоставлять покупателю услугу или товар.
Чтобы настроить уведомления:
- В личном кабинете интернет-эквайринга перейдите в раздел Магазины.
- На вкладке Терминалы нажмите Настроить и выберите нужный вариант получения уведомлений — почта, HTTP(S) или оба варианта.
Уведомления приходят не только о статусах платежа — также есть уведомления о привязке карты и привязке счета по QR.
Уведомления о платеже (NotificationPayment)
После проведения платежа через вызов метода Инициировать платеж вам будет отправлена информация о статусе платежа.
На электронную почту
Т‑Бизнес будет присылать письма с уведомлениями об успешных платежах в статусе CONFIRMED
.
По HTTP(S)
При вызове методов:
Подтвердить списание и Отменить платеж — уведомление с информацией об операции отправляется через POST‑запрос на адрес
NotificationURL
.При одностадийной оплате — уведомление синхронно отправляется на ваш сайт на адрес
NotificationURL
и ждет ответа в течение 10 секунд. После получения или неполучения ответа сервис переадресует покупателя наSuccessURL
илиFailURL
.При двухстадийной оплате — уведомление с информацией об операции отправляется через POST‑запрос на адрес
NotificationURL
.
Инициировать платеж — уведомление о привязке синхронно отправляется на ваш сайт на адрес
NotificationURL
и ждет ответа в течение 10 секунд. После получения или неполучения ответа сервис переадресует покупателя наSuccessAddCardURL
илиFailAddCardURL
.
Если в NotificationURL
используются порты, можно использовать порт 443 (HTTPS).
Чтобы получать POST‑запросы со статусами платежа, укажите URL в настройках терминала.
Ответ на HTTP(s)-уведомление
При успешной обработке уведомления вам нужно вернуть ответ HTTP CODE = 200
с телом сообщения OK
— без тегов, заглавными английскими буквами.
Если ответ OK
не получен, уведомление считается неуспешным. Сервис будет повторно отправлять его раз в час в течение 24 часов, а затем раз в сутки в течение месяца. Если за это время оно так и не будет доставлено, уведомление будет перемещено в архив.
Уведомления о привязке карты (NotificationAddCard)
После привязки карты через метод Инициировать платеж вам будет отправлена информация о статусе привязки.
Уведомления о статусе привязки счета по QR (NotificationQr)
Такие уведомления будут приходить только по статусам ACTIVE
и INACTIVE
.
После успешной привязки счета по QR вам будет отправлена информация о статусе привязки.
Методы API для получения данных об операции
В отправляемых выше нотификациях вам будет приходить общая информация по операции — terminalKey
, paymentId
и тип события (оплата, привязка карты, счета).
Также вы можете получать информацию об основных параметрах платежа, используя методы:
- Получить состояние платежа — для получения данных по конкретному платежу и данных по возврату платежа по СБП.
- Получить справку по операции — для получения справки по конкретной операции. Ее можно получить на вашу электронную почту или URL вашего сервиса.
Проверка токена уведомлений
При получении уведомления и перед его обработкой проверьте токен:
Соберите массив всех обязательных передаваемых параметров для конкретного метода в виде пар
ключ:значение
, кроме параметраToken
:[{"TerminalKey": "1234567890DEMO"},{"OrderId": "000000"},{"Success": "true"},{"Status": "AUTHORIZED"},{"PaymentId": "0000000"},{"ErrorCode": "0"},{"Amount": "1111"},{"CardId": "000000"},{"Pan": "20000******0000"},{"ExpDate": "1111"},{"RebillId": "000000"}]
Добавьте в массив пару
{"Password": "Значение пароля"}
. Пароль можно найти в личном кабинете интернет-эквайринга.[{"TerminalKey": "1234567890DEMO"},{"OrderId": "000000"},{"Success": "true"},{"Status": "AUTHORIZED"},{"PaymentId": "0000000"},{"ErrorCode": "0"},{"Amount": "1111"},{"CardId": "000000"},{"Pan": "20000******0000"},{"ExpDate": "1111"},{"RebillId": "000000"},{"Password": "11111111111"}]
Отсортируйте массив по алфавиту по ключу:
[{"Amount": "1111"},{"CardId": "000000"},{"ErrorCode": "0"},{"ExpDate": "1111"},{"OrderId": "000000"},{"Pan": "200000******0000"},{"Password": "11111111111"},{"PaymentId": "0000000"},{"RebillId": "000000"},{"Status": "AUTHORIZED"},{"Success": "true"},{"TerminalKey": "1234567890DEMO"}]
Конкатенируйте только значения пар в одну строку:
111100000001111000000200000******0000111111111110000000000000AUTHORIZEDtrue1234567890DEMO
Примените к строке хеш-функцию SHA-256 (с поддержкой UTF-8):
9b20300c4db1cc89e55dba5062497f135420cc5d93038d7e0a42537a1a36fcc5