Я работаю с тестовой карточкой 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 (они отделены от возвращенных данных). Почему это?
Вы уверены, что TTQ, который вы отправляете для этой транзакции, верны/действительны для бесконтактной транзакции? См. [Ошибка получения ошибки Parser для команды GPO для карты EMV] (http://stackoverflow.com/a/23591064/2425802). –
@MichaelRoland, пожалуйста, объясните больше об этом, поскольку те же карты, вызывающие вышеупомянутые ошибки при использовании метода без контакта, не показывают таких ошибок при использовании метода контактных транзакций, оба теста выполняются с использованием той же самой программы. Но я уверен, что мой TTQ подходит для мобильного устройства POS. –
. Я не знаком с контактными спецификациями, но для бесконтактного байта TTQ 1 ('F3'): бит 7 является RFU и ожидается, что он равен нулю в соответствии с текущим CL Kernel 3 spec. Бит 1 является RFU и ожидается, что он будет равен нулю в соответствии с спецификацией CL Kernel 3 в версии 2.1. Поэтому я предлагаю вам попробовать «B2» или «B3». Неправильный TTQ не объясняет, почему карточка отвечает SW '67 00'. –