Протокол обмена данными ерип
Обновлено: 04.07.2024
Протокол пакетного обмена создан для удобства одновременного проведения большого количества платежей, а также для повышения удобства реализации клиентского ПО, за счет переноса части клиентской логики на сервер.
Процедура обмена включает следующие этапы:
Шаг 1. Опрос баланса
Пример запроса баланса:
Описание:
Параметры запроса помещаются в элемент .
Тег включает в себя следующие теги:
– данный тег содержит номер версии протокола обмена;
– тег описывает данные авторизации: S1 – логин пользователя (кассира), S2 – Хэш-подпись пакета на отправку (см. Приложение А).
Ответ сервера:
Описание:
requestTimeout – рекомендуемый сервером интервал запроса статуса платежей в секундах. Вы можете использовать это число для отсчета времени (в секундах) перед запросом статуса. К указанному времени все платежи, посланные на обработку, должны быть проведены.
extra описывает составные части баланса: balance – баланс агента, overdraft – выставленный кредитный лимит. Общий баланс равен balance+overdraft.
Шаг 2. Онлайн проверка платежа
Пример запроса онлайн проверки:
Описание:
Параметры запроса помещаются в элемент .
Тег включает в себя следующие теги:
– данный тег содержит номер версии протокола обмена;
– тег описывает данные авторизации: S1 – логин пользователя (кассира), S2 – хэш-подпись пакета на отправку (см. Приложение А).
Тег содержит перечень платежей на проверку и включает в себя следующие теги:
– тег, содержащий данные о платеже
описывает конкретные платежи и включает в себя следующие теги:
- – дата распечатки чека в формате yyyymmddhhnnss;
- – номер чека – число 0..999999 последовательно закольцовано;
Ответ сервера:
Описание:
Шаг 3. Отправка запроса на проведение платежей
Пример запроса баланса:
Описание:
Параметры запроса помещаются в элемент . Тег включает в себя следующие теги:
– данный тег содержит номер версии протокола обмена;
– тег описывает данные авторизации: S1 – логин пользователя (кассира), S2 - хэш-подпись пакета на отправку (см. Приложение А).
– тег, содержащий данные о платеже
описывает конкретные платежи и включает в себя следующие теги:
- – дополнительное поле 1;
- – дополнительное поле N;
- – дата распечатки чека в формате yyyymmddhhnnss;
- – номер чека – число 0..999999 последовательно закольцовано;
Ответ сервера:
После отправки запроса на сервер, в ответ приходит пакет с результатами добавления транзакций в базу:
Описание:
requestTimeout – рекомендуемый сервером интервал запроса статуса платежей в секундах. Вы можете использовать это число для отсчета времени (в секундах) перед запросом статуса . К указанному времени все платежи, посланные на обработку, должны быть проведены.
status – статус транзакции после добавления в базу. Нормальным результатом добавления транзакции считается статус 25. Все остальные статусы могут возникать в результате исключительных ситуаций и по вопросам их возникновения необходимо обращаться в службу поддержки.
В случае если добавление транзакции завершилось со статусом отличным от 25, то необходимо проверить правильность формирования XML запроса и повторить отправку с другим номером транзакции
Шаг 4. Запрос о состоянии платежей
После добавления транзакции на сервере запускается процедура авторизации и проведения платежа, которая отправляет провайдеру запрос на проверку возможности проведения платежа и в случае положительного ответа провайдера – посылает команду на проведение. Каждый шаг этой операции сопровождается промежуточными статусами и кодами завершения. А также после успешного или ошибочного завершения операции, транзакции присваивается определенный статус и код результата завершения. В любой момент клиентское ПО может обратиться к серверу и опросить текущий статус транзакции и код результата завершения:
Пример запроса баланса:
Описание:
– информация о платеже. Тег содержит дочерний тег: - – номер транзакции, по которой необходимо узнать текущее состояние.
Ответ сервера:
После отправки запроса на сервер, в ответ приходит пакет с результатами обработки запрашиваемых транзакций:
Описание:
- false – статус промежуточный и обработка транзакции продолжается, необходим повторный запрос статуса для этой транзакции;
- true – статус является окончательным. Обработка транзакции прекращена сервером.
- false – если значение final-status – true (сервер прекратил обработку платежа), повторная отправка этого платежа на сервер, но с другим номером транзакции, даст другой результат (возможно платеж пройдет);
- true – обработка платежа завершена в результате фатальной ошибки, повторная отправка платежа с другим номером транзакции приведет к повторению той же ошибки.
Для обеспечения большей безопасности, при пересылке платежных пакетов вы можете использовать авторизацию с помощью специальной подписи (элемент sign-md5), которая формируется по следующему алгоритму:
Осуществляется MD5 хеширование результирующей строки. В результате будет получена строка MD5 последовательности из 32 байт: md5(transaction-number+password-md5))
Все полученные MD5 последовательности (для каждого элемента transaction-number) необходимо перевести в битовые массивы, соответствующие шестнадцатеричным кодам, и сложить по модулю 2 (XOR): сумма_транзакций=сумма_ транзакций XOR md5(transaction-number+password-md5))
Преобразовать полученный в результате всех операций битовый массив в строку, содержащую 32 символа шестнадцатеричных.
Полученную строку (длиной 32 символа) необходимо сложить с логином, номером терминала, номером запроса, MD5 от пароля: login+password-md5+terminal-id+request-type +сумма_транзакций
Осуществляется MD5 хеширование результирующей строки: sign-md5=md5(login+password_md5+terminal-id+request-type+сумма_транзакций)
Читайте также:
- Договор о намерениях между наследниками
- Медицинская справка для замены водительского удостоверения раменское
- Как узнать номер договора альфа банк
- Почему французский посол в вене барон де буркнэ после ознакомления с договором
- Согласно какому правовому акту устанавливается порядок обеспечения информационного обмена