Платежная система e-port - платежный терминал, организация приема платежей за сотовую связь, интернет, спутниковое телевидение.



о системе

о карте e-port

e-port шлюз

e-port мобайл

e-port терминал

агентам

проектам электронной коммерции

банкам

провайдерам

о компании

контакты
©  2000-2009, Группа e-port



Порядок электронного документооборота


Данный протокол описывает порядок информационного взаимодействия между СЕРВИС-ПРОВАЙДЕРОМ (поставщиком услуг) и системой приема платежей АГЕНТА (далее Система). Взаимодействие заключается в обмене информацией о платежах за услуги СЕРВИС-ПРОВАЙДЕРА, поступивших в Систему.

Взаимодействие Системы и СЕРВИС-ПРОВАЙДЕРА строится в режиме запрос-ответ, где инициатором запроса всегда является Система, а отвечающей стороной являетсяСЕРВИС-ПРОВАЙДЕР. Запросы и ответы состоят из набора полей, которые описаны ниже.

СОСТОЯНИЕ И АТТРИБУТЫ ПЛАТЕЖА

По своему состоянию платеж может считаться:

  • отсутствующим (нет никакой информации о платеже)
  • зачисленным (после успешного запроса зачисления платежа)
  • аннулированным (после успешного запроса аннулирования)

  1. Реквизиты клиента (передает Система). Реквизиты однозначно идентифицируют клиента. Если реквизит один, размещается в поле account. Если реквизитов несколько, они определенным алгоритмом упаковываются в поле account, либо создается несколько полей (имена полей оговариваются отдельно).
  2. Сумма платежа (передает Система). Указывается с точностью до копеек.
  3. Дата и время принятия платежа Системой (передает Система). Указывается с точностью до секунд.
  4. Уникальный идентификатор платежа (передает Система). Платежи, у которых все идентификаторы разные считаются разными, независимо от совпадения остальных атрибутов. Уникальный идентификатор однозначно определяет все остальные атрибуты платежа.
  5. Дата и время зачисления платежа СЕРВИС-ПРОВАЙДЕРОМ (определяет СЕРВИС-ПРОВАЙДЕР во время зачисления). Данный атрибут имеет место только для зачисленного платежа.
  6. Дата и время аннуляции платежа СЕРВИС-ПРОВАЙДЕРОМ (определяет СЕРВИС-ПРОВАЙДЕР во время аннуляции). Данный атрибут имеет место только для аннулированного платежа.

Все атрибуты и состояние платежа должны сохраняться как на стороне СЕРВИС-ПРОВАЙДЕРА, так и на стороне Системы. Если СЕРВИС-ПРОВАЙДЕР не может сохранять дату и время принятия платежа Системой, либо дату и время зачисления платежа СЕРВИС-ПРОВАЙДЕРОМ, то по взаимной договоренности Система и СЕРВИС-ПРОВАЙДЕР могут исключить данный атрибут из логики взаимодействия.

В начало

ОПИСАНИЕ ЗАПРОСОВ:

Каждый запрос Системы и ответ СЕРВИС-ПРОВАЙДЕРА состоит из набора именованных полей. Протокол предусматривает 4 типа запросов и ответов, в каждом из которых определен свой набор полей.

Запрос "check". Предназначен для проверки возможности принятия платежа. Успешный ответ СЕРВИС-ПРОВАЙДЕРА подтверждает возможность принятия СЕРВИС-ПРОВАЙДЕРОМ платежа с указанными в запросе реквизитами.

Поля запроса:

  • account - реквизит
  • sum - сумма платежа
  • timestamp - дата/время формирования запроса

Поля ответа:

  • result - результат (допустимы E*, S1, F1, F2, F3, F4)
  • reason - уточняющий комментарий отказа для СП (не обязателен)
  • account - копия из запроса
  • sum - копия из запроса
  • timestamp - копия из запроса

Запрос "payment". Предназначен для зачисления платежа. Успешный ответ СЕРВИС-ПРОВАЙДЕРА подтверждает зачисление СЕРВИС-ПРОВАЙДЕРОМ платежа с уникальным идентификатором и реквизитами, указанными в запросе.

Поля запроса:

  • id - уникальный идентификатор платежа на стороне Системы
  • pay_time - дата/время принятия платежа системой (наличие по договоренности)
  • account - реквизит
  • sum - сумма платежа
  • timestamp - дата/время формирования запроса

Поля ответа:

  • result - результат (допустимы E*, S1, F1, F2, F3, F4, F5, F7)
  • reason - уточняющий комментарий отказа для СП (не обязателен)
  • accepted - дата/время зачисления платежа СЕРВИС-ПРОВАЙДЕРОМ (наличие по договоренности, указывается в случае S1)
  • id - копия из запроса
  • pay_time - копия из запроса (наличие по договоренности)
  • account - копия из запроса
  • sum - копия из запроса
  • timestamp - копия из запроса

Запрос "status". Предназначен для получения Системой реквизитов принятого платежа. Ответ СЕРВИС-ПРОВАЙДЕРА с результатом S1 подтверждает наличие принятого платежа с уникальным идентификатором, указанным в запросе.

Поля запроса:

  • id - уникальный идентификатор платежа
  • timestamp - дата/время формирования запроса

Поля ответа:

  • result - результат (допустимы E*, S1, S2, F6)
  • account - реквизит найденного платежа (присутствует в случае успешного ответа)
  • sum - сумма найденного платежа (присутствует в случае успешного ответа)
  • pay_time - дата/время принятия платежа Системой (наличие по договоренности)
  • accepted - дата/время зачисления найденного платежа (присутствует в случае успешного ответа)
  • revoked - дата/время аннулирования найденного платежа (присутствует в случае ответа с результатом S2)
  • reason - уточняющий комментарий отказа для СЕРВИС-ПРОВАЙДЕРА (не обязателен)
  • id - копия из запроса
  • timestamp - копия из запроса

Запрос "revoke". Предназначен для аннулирования ранее зачисленного платежа. Успешный ответ СЕРВИС-ПРОВАЙДЕРА подтверждает аннулирование СЕРВИС-ПРОВАЙДЕРОМ ранее зачисленного платежа с уникальным идентификатором, указанным в запросе.

Поля запроса:

  • id - уникальный идентификатор платежа, подлежащий аннулированию
  • comment - комментарий к операции аннулирования (не обязателен)
  • timestamp - дата/время формирования запроса

Поля ответа:

  • result - результат (допустимы E*, S2, F6, F7, F8)
  • reason - уточняющий комментарий отказа для СЕРВИС-ПРОВАЙДЕРА (не обязателен)
  • revoked - дата/время аннулирования платежа СЕРВИС-ПРОВАЙДЕРОМ (указывается в случае S2)
  • id - копия из запроса
  • comment - копия из запроса
  • timestamp - копия из запроса

В запрос Системы (и, соответственно, в ответСЕРВИС-ПРОВАЙДЕРА) может быть добавлено поле service, которое преусмотрено для указания оплачиваемой услуги в том случае, если СЕРВИС-ПРОВАЙДЕР предоставляет возможность оплаты нескольких услуг.

В начало

ФОРМАТ ПОЛЕЙ

account - формат оговаривается отдельно между Системой и СЕРВИС-ПРОВАЙДЕРОМ
sum - число с 2 фиксированными знаками после запятой, разделитель - точка
id - целое 32-битное число, от 0 до 2^32-1
timestamp, pay_time, accepted, revoked - дата/время в формате ISO с точностью до секунд, YYYY-MM-DDTHH:MM:SS±hh
result - [ESF][0-9]{1,2}
reason, comment - строка до 256 символов

В начало

РЕЗУЛЬТАТЫ (поле result):

E1 - запрос не распознан
E2 - технические трудности обработки запроса
E3 - подпись запроса неверна
E4 - результат операции еще не известен

S1 - успешно, платеж считается зачисленным
S2 - успешно, платеж считается аннулированным

F1 - отказ, сумма меньше минимальной допустимой
F2 - отказ, сумма больше максимальной допустимой
F3 - отказ, клиент с указанными реквизитами не найден
F4 - отказ, платеж невозможен (но клиент с указкнными реквизитами найден)
F5 - отказ, платеж с указанным id уже проведен
F6 - отказ, платеж с указанным id не найден
F7 - отказ, платеж с указанным id уже аннулирован
F8 - отказ, аннулирование не возможно

В начало

АУТЕНТИФИКАЦИЯ ЗАПРОСОВ И ОТВЕТОВ

Для аутентификации сторон используется электронный аналог собственноручной подписи (далее просто "подпись"), которым подписываются запросы и ответы. Запрос или ответ, подпись которого неверна, должен быть отвергнут с диагностикой ошибки проверки подписи.

В качестве алгоритма подписи используются ассиметричный алгоритм RSA с алгоритмом хеширования MD5 или SHA1. Проверка подписи и ее формирование осуществляется по строке, которая состоит из полей запроса или ответа, за исключением поля sign, в котором передается сама подпись.

Строка, по которой формируется подпись, состоит из подстрок-определений полей, упорядоченных по строковому возрастанию имени поля и соединенных символом '&' (амперсанд). Подстроки-определения полей состоят из имени поля и URL-кодированного значения поля, соединенных символом '=' (равно).

Для устранения разногласий между разными стандартами и исключения ошибок в проверки подписи алгоритм URL-кодирования оговаривается отдельно. Используется кодирование всех символов, отличных от алфавитно-цифровых символов, символа '_' (подчеркивания), символа '-' (равно) и символа '.' (точки) в соответствующее шестнадцатеричное представление %XX, где XX является шестнадцатеричным кодом символа.

В начало

ТРЕБОВАНИЯ К ШЛЮЗУ

Операция check должна максимально возможно проверить все случаи отказов, которые возможны в payment.

Ответ СЕРВИС-ПРОВАЙДЕРА содержит ВСЕ поля запроса Системы в том неизменном строковом виде, в котором они пришли в запросе. В случае их несовпадения Система не должна обрабатывать такой ответ.

Запросы и ответы с неверной подписью не должны приниматься к обработке ни Системой, ни СЕРВИС-ПРОВАЙДЕРОМ.

В начало

ТРАНСПОРТНЫЙ УРОВЕНЬ ПЕРЕДАЧИ ЗАПРОСОВ И ОТВЕТОВ

В качестве транспортного уровня используется протокол HTTP. Поля запроса отправляются методом POST с типом контента (заголовок "Content-Type") "application/x-www-form-urlencoded". Поля и значения ответа возвращаются в теле ответа в аналогичном формате, как и при запросе методом POST, с таким же типом контента.

Для правильного восприятия комментариев в заголовках требуется указывать кодировку значений полей.

В каждом запросе Системы присутствует поле type, которое содержит тип запроса виде строчек check, payment, status или revoke.

В каждом запросе Системы присутствует поле sign, которое содержит подпись запроса в виде шестнадцатеричного дампа двоичных данных подписи (старшие 4 бита байта - первые, подпись формируется в порядке следования байтов).

В начало


| Организация приема платежей | Прием платежей | Платежный киоск | Оплата коммунальных услуг |
| Оплата сотовой связи | Мобильный платеж | Платежный терминал | Тарифы | Модемный доступ |
|О сайте | Поддержка | Статистика | Глоссарий | Безопасность | Карта сайта |

В начало (Наверх)