Для банков

EMV-сервис с удаленным ридером

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

Архитектура комплекса Андроид + EMV-сервис

emv-service

Общие правила проведения оплаты

Коммерсант

У коммерсанта установлен ВЕБ сервер со стандартным интернет магазином. После регистрации коммерсанта в банке, коммерсанту присваивается «ID коммерсанта» и правила оформления кнопки «Оплата CHIP» на сайте.

Кнопка «Оплата CHIP» содержит Java скрипт, знающий об имени приложения «Транспорт запросов».

Пользователь

Пользователь покупает устройство с Андроидом версии 3.1 и выше с USB, покупает карт-ридер из заранее определенного списка.

Пользователь скачивает с Андроид-маркета.и устанавливает модуль для проведения платежей. Модуль состоит структурно из двух программ: «Обработчик ридера» и программа «Транспорт запросов».

Банк

Устанавливает у себя сайт платежной системы «CHIP-овая оплата», «EMV сервис» и обеспечивает через ESB доступ к CORTEX по протоколу ISO-8583 (диалект CORTEX).

Алгоритм проведения оплаты по чиповой карте

Пользователь, используя произвольный браузер, находит в Интернете магазин, совершает процедуру выбора товара. По окончанию нажимает на кнопку «Оплата CHIP». Java-скрипт этой кнопки запускает на устройстве пользователя приложение «Транспорт запросов», передавая ему в качестве параметров ID коммерсанта, ID-терминала, адрес сайта «CHIP-овая оплата», сумму платежа, ID транзакции и прочие параметры операции.

Приложение «Транспорт запросов» через программу «Обработчик ридера» проверяет наличие подключенного ридера и карты в нем. В случае отсутствия карты приложение «Транспорт запросов» выдает сообщение пользователю «Подключите ридер» или «вставьте карту». Программа для выдачи сообщений использует стандартные Андроид функции и не имеет своего отдельного графического интефейса.

После подключения программа открывает SSL канал связи на сайт «CHIPовая оплата» и передает туда сумму, ID коммерсанта, ID-терминала, ID транзакции и прочие параметры операции.

Программа «EMV сервис» на сайте принимает информацию, по ID коммерсанта и ID терминала извлекает из внешней базы данных набор необходимых реквизитов и EMV параметров.

Программа «EMV сервис» передает данные на устройство пользователя в приложение «транспорт запросов». Фактически ответ представляет собой набор APDU команд.

Приложение «Транспорт запросов» выполняет команды по CCID интерфейсу через программу «Обработчик ридера» и отсылает ответ назад в «EMV сервис».

Обмен между программами «Транспорт запросов» и «EMV сервис» осуществляется необходимое количество раз.

В определенный момент программа «EMV сервис» обращается через ESB на хост CORTEX по протоколу ISO-8583 (диалект CORTEX).

По мере исполнения процесса обмена программа «транспорт запросов» может выдавать пользователю сообщения типа «Введите ПИН на клавиатуре ридера» ожидать реакции пользователя, в соответствии со спецификацией протокола «Y».

В результате обмена программа «EMV сервис» принимает решение о факте исполнения транзакции (или необходимости исполнения автоотмены на хосте CORTEX).

После принятия решения о факте оплаты программа «EMV сервис» сообщает об этом решении приложению «транспорт запросов» и оно сообщает пользователю результат операции «Оплата на сумму ХХХХ произведена удачно» и возвращает управление браузеру.

Программа «EMV сервис» через ESB сообщает на сайт магазина результат проведения транзакции, сообщая ID коммерсанта, ID-терминала, ID транзакции и прочие параметры операции, в соответствии с протоколом «R».

При разрыве связи между программой «EMV сервис» и приложением «Транспорт запросов» программа «EMV сервис» может прекратить операцию и по необходимости выполнить операцию автоотмены через хост CORTEX.

Программа «EMV сервис» не производит сверку итогов с хостом CORTEX, поскольку работает в непосредственной близости от хоста (фактически исключены потери транзакций в результате сбоев связи).

Функционал структурных единиц системы

Интерфейс X.

Вызов Java скриптом приложения «Транспорт запросов», с передачей параметров ID коммерсанта, ID транзакции, суммы, адреса сайта «CHIPовая оплата»

Интерфейс Z.

Интерфейс, независимый от типа ридера, реализует CCID, исполнен на уровне классов Java.

Интерфейс S.

Интерфейс обращения к конкретному ридеру. Реализуется на уровне обращения USB классам Андроида и реализует конкретные команды ридера. Интерфейс взаимодействует с картой, передавая APDU команды

Интерфейс Y.

Интерфейс реализован внутри SSL соединения на уровне передачи XML запросов и ответов, которые обеспечивают для программы «EMV сервис» общение через удаленный ридер с ЧИП-овой картой. Дополнительно интерфейс поддерживает передачу сообщений для пользователя, которые необходимы в процессе совершения транзакции.

Интерфейс R.

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

Интерфейс V.

Интерфейс предназначен для выборки из базы данных по ID коммерсанта необходимых параметров для исполнения транзакции по карте. Интерфейс реализован в виде вызова внешней динамической библиотеки с регламентированной функцией.

Интерфейс ISO.

Интерфейс предназначен для проведения процесса авторизации на хотсте CORTEX Интерфейс реализован в виде вызова внешней динамической библиотеки с регламентированной функцией.

Программа «EMV сервис».

Данная программа реализует полноценную логику взаимодействия EMV-терминала и EMV-карты, является подобием прогаммного EMV-терминала. Программа поддерживает следующие операции: покупка, выдача наличных, получение баланса карты, автоматическая отмена неуспешной операции. Данные операции инициируются «Трансортом запросов» через интерфейс Y. В процессе исполнения транзакции программа через ESB обращается по ISO протоколу к хосту CORTEX для проведения процесса авторизации. Программа общается с картой через удаленный ЧИП-овый картридер, извлекает параметры обработки транзакции из внешней базы данных через интерфейс «V» и сообщает результат работы не в виде чека, а в виде сообщения для коммерсанта через интерфейс «R». В процессе исполнения транзакции программа может через интерфейс «Y» выдать сообщение пользователю. Например, «На карте недостаточно средств для проведения платежа». Программа реализована в виде сервиса на операционной системе Linux. (Дистрибутивы Fedora, Red Hat, Oracle или ASP. Ядро не ниже 2.6.32.)

Приложение «Транспорт запросов».

Основное назначение программы состоит в обеспечении передачи APDU команд от программы «EMV сервис» на ридер. Программа имеет визуальный интерфейс с пользователем, в котором может сообщить о результатах проведения транзакции и состоянии карты и ридера о необходимости набрать ПИН и другие сообщения. Этот интерфейс пользователя реализован на основе стандартных Андроидовских функций и фактически не требует создания никакого GUI. Программа реализована в виде Java приложения на Андроиде. Программа должна загружаться с Андроид-маркета совместно с программой «Обработчик ридера».

Программа «обработчик ридера».

Программа является JAVA классом и условно представляет собой «драйвер» ридера. Программа предназначена для стандартизации интерфейса Z в сторону программы «Транспорт запросов». Программа поддерживает некий списочный состав ридеров, самостоятельно определяя тип подключенного ридера. Программа выставляет в сторону программы «транспорт запросов» стандартизованный набор классов Java, который фактически реализует CCID. Программа реализована в виде Java приложения, загружаемого с Андроид-маркета совместно с программой «Транспорт запросов». Программа не имеет пользовательского интерфейса.