2015-03-04 2 views
0

Я работаю с тестовой карточкой Visa CDET без контакта. Я успешно выбрал приложение, которое дал мне следующий результат:Почему карта отказывается от команды GPO?

<= 6f 29 84 07 a0 00 00 00 03 10 10 a5 1e 50 0b 56 49 53 41 20 43 52 45 44 49 54 5f 2d 02 65 6e 9f 38 09 9f 66 04 9f 02 06 9f 37 04 

Результат включал PDOL, который просил для следующих пунктов:

Terminal Transaction Qualifiers 
Length: 4 bytes 

Authorised Amount 
Length: 6 bytes 

Unpredictable Number 
Length: 4 bytes 

Когда дело доходит до команды объекта групповой политики, я делаю есть все необходимые элементы, как показано ниже:

=> 80 a8 00 00 10 83 0e f3 20 40 00 00 00 00 00 12 00 bc 4b a2 3f 00 

Но когда я запускаю команду, я получил 67 00 ошибки: неправильная длина Lc. В чем может быть проблема? Помните, что одна и та же программа отлично работает при работе с тестовыми картами Visa CDET Contact из того же набора.

EDIT: Об одной и той же проблеме, у меня есть тестовый считыватель, который я использую для подтверждения моих показаний. Читатель и его программа могут получить параметры GPO и вернуть результат для других карт, но моя программа не дает мне никаких результатов, когда я пытаюсь выполнить ТОЧНУЮ команду, используя ТОЧНУЮ ту же карту в моей пользовательской программе. Результат - пустой, но слова состояния 90 00 (они отделены от возвращенных данных). Почему это?

+0

Вы уверены, что TTQ, который вы отправляете для этой транзакции, верны/действительны для бесконтактной транзакции? См. [Ошибка получения ошибки Parser для команды GPO для карты EMV] (http://stackoverflow.com/a/23591064/2425802). –

+0

@MichaelRoland, пожалуйста, объясните больше об этом, поскольку те же карты, вызывающие вышеупомянутые ошибки при использовании метода без контакта, не показывают таких ошибок при использовании метода контактных транзакций, оба теста выполняются с использованием той же самой программы. Но я уверен, что мой TTQ подходит для мобильного устройства POS. –

+0

. Я не знаком с контактными спецификациями, но для бесконтактного байта TTQ 1 ('F3'): бит 7 является RFU и ожидается, что он равен нулю в соответствии с текущим CL Kernel 3 spec. Бит 1 является RFU и ожидается, что он будет равен нулю в соответствии с спецификацией CL Kernel 3 в версии 2.1. Поэтому я предлагаю вам попробовать «B2» или «B3». Неправильный TTQ не объясняет, почему карточка отвечает SW '67 00'. –

ответ

1

Предположим сначала, что карта права: если длина объекта данных 83 равна 0x0F (вместо 0x0E), если я правильно подсчитал, тогда общая длина, которая должна быть поставлена ​​в LC, должна быть 0x11 вместо 0x10 (тег и длина для добавления). Это не объясняет, почему работает контактная версия, но, возможно, она по-прежнему будет работать после настройки.

+0

Ну 4 + 6 + 4 = 14 = 0x0E; 14 + 2 = 16 = 0x10. –

+0

@MichaelRoland: Пока ваши вычисления безупречны, 15 байтов следуют за байтом 0x0E: f3 20 40 00/00 00 00 00/12 00 bc 4b/a2 3f 00 - это число нулевых байтов в середине? – guidot

+0

Исправить. Последний байт является байтом Le (так как карта должна сообщать о параметрах обработки в ответ на команду GPO). –

Смежные вопросы