| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java Card > Получение номера карты |
| Автор: shadowtony 30.5.2008, 11:16 |
| Друзья, возник следующий вопрос. Есть проект, в котором используем Smart Card Reader (ASEDrive) )для чтения кредиток. поскольку то смарткарты, то все тыкают носом в PC\SC - погуглив, находим OCF, javax.smartcardio и еще много вкусного, готового, работающего и т.п. но вот после изучения ISO/IEC 7816-4 я не нашел в описываемых командах обмена между картой и компом никаких средств получения простого номера кредитки, например. Да, работа с приложения на карте это хорошо(потом эт о нам может оказаться полезным), но мне бы пока простые вещи сделать через этот Card Reader - идентификацию карты всеми способами, чтобы деньги с нее клиент мог куда-то переводить или хотя бы идентифицировать себя в приложениях. в какой-то команде по ИСО (или каких-то общих приложениях карты?) эта опция заложена? и мне лишь надо понять каую команду и с какими параметрами дергать? Или же я совсем не в том направлении ищу и smartcard это совсем другая опера, не мой случай? тогда куда копать, в какую степь? подскажите, пожалуйста. буду рад информации. |
| Автор: firstone 2.6.2008, 22:24 |
| shadowtony, Здравствуйте! В стандартах ISO/IEC 7816 нет описания транзакций с кредитными картами. Для того, чтобы Вам получить необходимую информацию, нужно обратиться прямо к Mastercard/VISA для получения протоколов и формата комманд. Просто так эту информацию кредитные компании не публикуют. Кроме всего прочего, карта может и не быть Java Card. Поэтому Вам не нужно опираться на протоколы комманд JC. Здесь они могут нести только вспомогательную функцию (загрузка приложения, конфигурация, ключи и т.д.). Буквально на прошлой неделе я персонализовал несколько кредиток с операционной системой MultOS - еще одна реализация стандарта Global Platform (иными словами альтернатива и конкурент Java Card). Это я привел к тому, что сама технология Java Card Вам не пригодится. Если Вас интересуют подробности транзакций, обратитесь ко мне по П.М. Я попробую достать описание, и если нет ограничений я выложу его здесь. Вообще насколько я помню все транзакции делятся на офлайн и онлайн. Офлайн-транзакции накапливаются в ридере/терминале и пачкой отправляются на сервер для проверки. Обычно это используется при относительно малых суммах (определено ридером/терминалом). Онлайн-транзакции выполняются только если карта аутенцифицирована сервером (банк, VISA, Mastercard). Сама карта не производит аутентификацию ридера/терминала (т.е. нет взаимной аутенцификации - mutual authentication). Попробую нарыть некоторую информацию... П.С> Собираетесь написать домашний терминал, чтобы можно было расплачиваться кредиткой дома? |
| Автор: firstone 17.6.2008, 13:23 |
| Смотрите тут: http://saush.wordpress.com/2006/09/08/getting-information-from-an-emv-chip-card/ Здесь рассмотрен MChip. Добавлено через 1 минуту и 23 секунды PAN не посылается в ATR. Чтобы считать PAN нужно выбрать аппликацию и далее по ее протоколу. ПАН - это данные приложения на карте а не всей карты. |
| Автор: shadowtony 17.6.2008, 17:03 | ||
про МЧип спасибо, интересная статейка. а про выбор приложения на карте.. ну то есть если я, например, общаюсь через javax.smartcardio с зарегистрированным ридером и картой в нем и шлю ему APDU-команды, то вопрос лишь в отсылке нужных команд нужному приложению. так? а данные, передаваемые в командах запросов к приложению, уже определяются спецификацией на это приложение. но в целом задача получения ПАна такими средствами разрешима? |
| Автор: firstone 18.6.2008, 07:59 | ||||
Да.
Да. Конечно. Ведь разработчик приложения определяет протокол команд. Да, конечно. Посмотрите статью про Мчип. Я тут попытался достать доку по Визе и Мастеркарту. Пока безрезультатно. Но надеюсь, все же смогу... |
| Автор: lumag 20.1.2012, 19:49 |
| Для полноты темы и истории: Есть базовый стандарт http://www.emco.com в котором описано, как как именно должно происходить взаимодействие хоста и карточки. Как вычитывать данные и т.п. У платежных систем есть свои версии дополнений к этому стандарту, которые описывают, как именно что происходит, какие значения могут принимать данные и т.п. Стандарт EMV - открытый и бесплатный. И для ответа на большинство простых вопросов его достаточно. Стандарты платежек обычно доступны только организациям-партнерам, банкам и т.п. Но чтобы вычитать имя владельца карты или номер карты достаточно EMV. |
| Автор: jcardsim 21.1.2012, 14:08 |
| Вот тут хорошие примеры : http://stackoverflow.com/questions/283251/how-do-i-read-the-pan-from-an-emv-smartcard-from-java |