每种内核类型在PDOL中可能请求的标记列表?

时间:2018-03-15 07:44:01

标签: contactless-smartcard emv

我无法找到有关可能包含在PDOL中的潜在标签的信息(按照内核类型,即Visa,万事达卡等)。我已经查看了所有的书A-D,第1-4册pdf无济于事(例外是C-1)。我对C-2和C-3的名单特别感兴趣。

我的问题是,目前我根据这样的switch语句构建了与PDOL相关的数据:

    switch (item.getTag()) {
        case AMOUNT_AUTHORISED_NUMERIC:
            out.write(ByteUtils.leftPad(ByteUtils.intToUnpackedBcd(txData.getAmountAuthorized()), 6));
            break;
        case AMOUNT_OTHER_NUMERIC:
            out.write(ByteUtils.leftPad(ByteUtils.intToUnpackedBcd(txData.getAmountOther()), 6));
            break;
        case TERMINAL_COUNTRY_CODE:
            out.write(ByteUtils.intToUnpackedBcd(terminalConfiguration.getCountryCode().getNumeric()));
            break;
        case TRANSACTION_CURRENCY_CODE:
            out.write(ByteUtils.leftPad(ByteUtils.intToUnpackedBcd(txData.getCurrency().getISOCodeNumeric()), 2));
            break;
      ...

对于这种方法,我必须知道在PDOL中可以请求哪些标记以添加case

另一种方法是用Map填充我有信息的所有标签及其各自的值,并在构造PDOL相关数据时查看它。我认为这有点混乱和冗余我试图避免它。

2 个答案:

答案 0 :(得分:1)

这种方法并没有朝着正确的方向发展。您应该考虑更多通用的DOL构建代码来处理请求的标记长度,包括修剪和填充,具体取决于EMV第3章第5.4章中指定的对象类型。

答案 1 :(得分:0)

使用标签填充地图根本不是很麻烦。它的标签为键,值为值,因此更加灵活方便。我们为我们的EMV sdk做到了这一点。通常,你不知道你会得到什么标签或标签的数量,或者你会得到什么样的标签。

将它们放在哈希映射中有很多原因,如果您需要将它们传递给API来运行事务,您可以轻松地抛出包含所有标记和值的哈希映射。如果你需要显示它们,那么显示哈希映射中的键和值也很容易。