2014-05-11 73 views
0

我对VISA卡的GET PROCESSING OPTIONS(GPO)命令有一些问题。请求EMV卡的GPO命令时出现分析器错误

以下是我给SELECT命令响应签证申请:

6F408407A0000000031010A535500A564953412044454249549F380C9F66049F02069F37049F1A025F2D02656EBF0C1242034761735F550255539F5A0511084008409000 

我提取从这个以下PDOL:9F66049F02069F37049F1A02

我不知道有关标签9F66

我GPO命令则是这样的:

80a800000100000001000000001000823DDE7A12400 

但我得到一个解析器错误的响应:

6A80 

回答

6

你GPO命令似乎有相当多的问题:

80 A8 0000 01  00000001 000000001000 823DDE7A 1240 0 
      ^^ ^^^^^ ^^^^^^^^      ^^^^ ^^ 
      4. 1.  2.        3. 5. 
  1. 首先,您的GPO命令发送几个没有上下文的数据字节您需要将数据项封装成PDOL相关的数据对象:

    83 10 wwwwwwww xxxxxxxxxxxx yyyyyyyy zzzz 
    
  2. 您的终端交易预选赛(9F66)已RFU位设置。有效TTQ可能看起来像这样:B620C000,与

    • B6
      • 磁条模式支持@bit 8
      • EMV模式支持@bit 6
      • EMV接触芯片支持@bit 5
      • 支持在线模式@bit 4
      • 在线PIN支持@bit 3
      • 签名支持@bit其他2
      • 位= RFU
    • 20
      • 不可线上密码需要@bit 8
      • 无CMV需要@bit 7
      • (接触芯片)离线PIN支持@bit 6
      • 其它位= RFU
    • C0
      • 发行者更新处理支持@Bit 8
      • 消费者设备CVM支持的其它@Bit 7
      • 位= RFU
    • 00:RFU
  3. 您的终端国家代码不有效。终端国家代码必须是一个3位数字值BCD编码成两个字节。假设你想使用“124”(卡南达),正确的国家代码将是0124(奥地利:0040,英国:0826,美国:0840)。

  4. Lc字节(设置为01 =一个数据字节)不反映实际数据长度。在你的情况下,实际的数据长度将是16个字节,所以Lc应该设置为10。考虑到您还需要包含PDOL相关数据对象的标签和长度,应将Lc字节设置为12(18字节)。

  5. 您作为GPO命令提供的十六进制字符串未与字节对齐,因此您缺少Le字段的一个半字节。你乐场应该设置为Le

所以你的GPO的命令看起来是这样的:

80 A8 0000 12 83 10 B620C000 000000001000 823DDE7A 0124 00 
+0

感谢迈克尔的详细解释不过遗憾的是越来越6A80.looking上的标签数据daoption的反应,我想通过移动nfc –

+0

@SaravanaCd查看我的更新答案,PDOL相关数据的标签为“83”而不是“9F38”。 –

+0

我试图使用上面的命令APDU,但不幸的是应用程序崩溃,试图更改APDU如下80a800002 83 10B620C000000000001000823DDE7A012400但仍获得相同的响应。 –

相关问题