始终获得6A82和6D00的阅读签证卡



我正在阅读Visa卡中的数据,但始终获得PSE的响应6A82和6D00。我正在使用SmartCardio,以下是命令选择PSE:00A404000E315041592E5359532E444444446303100

处理代码:80A8000002830000

下面的代码可用于Paypak(巴基斯坦支付卡声称EMV兼容性(,但对于签证行不通。

startCardConnection("0");
    String commandVisa = "00A4040007A000000003101000";
    String command_PSE = "00A404000E315041592E5359532E444446303100";
     String command_getProcessingOptionsVISA = "80A8000002830000";
    String response;
    response = executeCardCommand(command_PSE);
    response = executeCardCommand(commandVisa);
    readCardRecords(2);
    response = executeCardCommand(command_getProcessingOptionsVISA);
response = executeCardCommand("80AE8000210000000000000000000000000586000000000005861802020000E44E4B11040001");

  public static String executeCardCommand(String command) {
    if (transmissionTrace)
        System.out.println("SYS: Executing card command:" + command);
    capdu = makeCommandAPDU(command);
    TLV tagsList;
    try {
        if (card == null) {
        System.out.println("SYS: ERR: Card not present/not responding!");
        return null;
        }
        responsedAPDU = card.getBasicChannel().transmit(capdu);
        showRes(responsedAPDU.getBytes());
        tagsList = new TLV(responsedAPDU.getBytes());
        allTagsTLV.getChildren().add(tagsList);
        System.out.println(">>>>>>>>>>>>" + responsedAPDU.toString());
    } catch (CardException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (TLVException e1) {
        // TODO Auto-generated catch block
        System.out.println("SYS: NO tags response. May be correct if not expecting tags.");
    }
    return allTagsTLV.getJson();
    }

对PSE的触点支持是可选的 - 既适用于卡片,又是终端。从终端/内核角度来看,只有LOA(AIDS列表(方法是必不可少的。如EMV第1章第12.3章所述,当丢失PSE时(状态词6A82(,终端应使用AIDS方法列表构建候选列表,以基于其配置。我不知道您何时获得6D00,但是您无法正确执行应用程序选择,所以我想您正在触发GPO和GENAC之类的命令,而无需选择应用程序。您引用的代码非常错误 - 它没有处理任何错误,无法正确选择应用程序,它不会检查PDOL的存在,也不会使用CDOL1读取记录,不会构建DOLS。老实说,它可能仅通过巧合而起作用。

相关内容

  • 没有找到相关文章

最新更新