java - 无法使用 EMV 非接触式 (Interac Flash) 从借记卡读取 PAN

标签 java nfc smartcard-reader emv contactless-smartcard

尝试在支持 NFC Interac Flash 的卡上使用标准 EMV 协议(protocol)读取借记卡号。

这是我的交易顺序:

Request1: 00A404000E325041592E5359532E444446303100 (选择2PAY.SYS.DDF01获取PSE目录)

响应 1:6F2C840E325041592E5359532E4444463031A51ABF0C1761154F07A00000027710105007496E74657261638701019000 (AID A0000002771010)

请求2:00A4040007A000000277101000(选择AID A0000002771010)

Response2: 6F348407A0000002771010A5295007496E74657261638701015F2D02656E9F38159F59039F5A019F02069F1A025F2A029F37049F58016285 (Selected Aid include PDOL, Image response.

http://i.stack.imgur.com/c9FjM.png

Request3: 80A800001583130000990000000000000001240124000001230000(获取处理选项,基于上面的结构)

响应3:6985(不允许命令;不满足使用条件。)

我无法通过 6985 错误;经过 2 天的规范阅读和反复试验。

从借记卡 (Interac) 读取卡号的任何提示/想法/成功示例?被测卡为具有Interac Flash非接触式功能的TD借记卡。

非常感谢!

--- 注意:我能够在没有 GET PROCESSING OPTION 的情况下从 Visa 和 MasterCard 读取卡号。但是由于我一直在没有 GPO 的情况下获得 6985,所以我尝试这样做,但失败了。我真的不需要做 GPO,只需要获取卡号和到期日期。 ---

最佳答案

“Interac 直接支付的双界面读卡器/终端规范” 1.4 版表明,当内部应用程序交易计数器 (ATC) 达到其最大值时,卡应响应 SW1 SW2 = 6985:

3.2.6 GET PROCESSING OPTIONS command

... If ATC reaches its maximum value (‘FFFF’), the card response to GET PROCESSING OPTION is SW1SW2 = ’69 85’.

但是,由于对其请求的 PDOL 的响应无效,卡可能会拒绝 GET PROCESSING OPTIONS (GPO) 命令。以下是 GPO 命令中发送的值与有效 Interac Flash 事务中发送的值的比较:

TAG  LEN MEANING                                YOUR SAMPLE    VALID SAMPLE
9F59 03  Terminal Transaction Information       000099         C08000
9F5A 01  Terminal transaction Type              00             00               
9F02 06  amount, authorised                     000000000000   000000001000
9F1A 02  Terminal country code                  0124           0124
5F2A 02  Transaction currency code              0124           0124
9F37 04  Unpredictable number                   00000123       823DDE7A 
9F58 01  Merchant Type Indicator                00             01

你会注意到:

  1. 终端交易信息似乎无效。应根据您的阅读器能力进行设置。
  2. 卡可能不支持该金额:您正在尝试进行 0 美元的购买。
  3. 商家类型标识无效(有效值范围为 01 到 05)

一旦您更正了这些值,卡很可能会接受 GPO 命令,您将能够使用 READ RECORD 命令读取 PAN。

希望这对您有所帮助。

以下是已接受的 InteracFlash 购买示例,直至已接受的 GPO 命令。 PCD识别非接触式读卡器/终端发送的命令,PICC识别InteracFlash卡的响应:

PCD     Select File
PCD         CLA: 00
PCD         INS: A4
PCD         P1: 04
PCD         P2: 00
PCD         Lc: 0E
PCD         Data: 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31
PCD         Le: 00
PICC    Successful
PICC        Data (46 bytes)
PICC            Tag 6F:FCI Template
PICC            Length:2C
PICC            Value :84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 
        A5 1A BF 0C 17 61 15 4F 07 A0 00 00 02 77 10 10 
        87 01 01 50 07 49 4E 54 45 52 41 43
PICC                Tag 84:Dedicated File (DF) Name
PICC                Length:0E
PICC                Value :32 50 41 59 2E 53 59 53 2E 44 44 46 30 31
PICC                Tag A5:FCI Proprietary Template
PICC                Length:1A
PICC                Value :BF 0C 17 61 15 4F 07 A0 00 00 02 77 10 10 87 01 
        01 50 07 49 4E 54 45 52 41 43
PICC                    Tag BF0C:FCI Discretionary Data
PICC                    Length:17
PICC                    Value :61 15 4F 07 A0 00 00 02 77 10 10 87 01 01 50 07 
        49 4E 54 45 52 41 43
PICC                        Tag 61:Application Template
PICC                        Length:15
PICC                        Value :4F 07 A0 00 00 02 77 10 10 87 01 01 50 07 49 4E 
        54 45 52 41 43
PICC                            Tag 4F:Application Identifier
PICC                            Length:07
PICC                            Value :A0 00 00 02 77 10 10
PICC                            Tag 87:Application Priority Indicator
PICC                            Length:01
PICC                            Value :01
PICC                            Tag 50:Application Label
PICC                            Length:07
PICC                            Value :49 4E 54 45 52 41 43
PICC                            ASCII Value:INTERAC
PICC            SW1 SW2: 90 00
PCD     Select File
PCD         CLA: 00
PCD         INS: A4
PCD         P1: 04
PCD         P2: 00
PCD         Lc: 07
PCD         Data: A0 00 00 02 77 10 10
PCD         Le: 00
PICC    Successful
PICC        Data (62 bytes)
PICC            Tag 6F:FCI Template
PICC            Length:3C
PICC            Value :84 07 A0 00 00 02 77 10 10 A5 31 50 07 49 4E 54 
        45 52 41 43 87 01 01 9F 38 15 9F 59 03 9F 5A 01 
        9F 02 06 9F 1A 02 5F 2A 02 9F 37 04 9F 58 01 5F 
        2D 02 65 6E BF 0C 05 9F 4D 02 0B 14
PICC                Tag 84:Dedicated File (DF) Name
PICC                Length:07
PICC                Value :A0 00 00 02 77 10 10
PICC                Tag A5:FCI Proprietary Template
PICC                Length:31
PICC                Value :50 07 49 4E 54 45 52 41 43 87 01 01 9F 38 15 9F 
        59 03 9F 5A 01 9F 02 06 9F 1A 02 5F 2A 02 9F 37 
        04 9F 58 01 5F 2D 02 65 6E BF 0C 05 9F 4D 02 0B 
        14
PICC                    Tag 50:Application Label
PICC                    Length:07
PICC                    Value :49 4E 54 45 52 41 43
PICC                    ASCII Value:INTERAC
PICC                    Tag 87:Application Priority Indicator
PICC                    Length:01
PICC                    Value :01
PICC                    Tag 9F38:Processing Options Data Object List (PDOL)
PICC                    Length:15
PICC                    Value :9F 59 03 9F 5A 01 9F 02 06 9F 1A 02 5F 2A 02 9F 
        37 04 9F 58 01
PICC                        Tag 9F59:Terminal Transaction Information
PICC                        Length:03
PICC                        Tag 9F5A:Terminal transaction Type
PICC                        Length:01
PICC                        Tag 9F02:Amount, Authorized (Numeric)
PICC                        Length:06
PICC                        Tag 9F1A:Terminal Country Code
PICC                        Length:02
PICC                        Tag 5F2A:Transaction Currency Code
PICC                        Length:02
PICC                        Tag 9F37:Unpredictable Number
PICC                        Length:04
PICC                        Tag 9F58:Merchant Type Indicator
PICC                        Length:01
PICC                    Tag 5F2D:Language Preference
PICC                    Length:02
PICC                    Value :65 6E
PICC                    ASCII Value:en
PICC                    Tag BF0C:FCI Discretionary Data
PICC                    Length:05
PICC                    Value :9F 4D 02 0B 14
PICC                        Tag 9F4D:Log Entry
PICC                        Length:02
PICC                        Value :0B 14
PICC            SW1 SW2: 90 00
PCD     Get Processing Options
PCD         CLA: 80
PCD         INS: A8
PCD         P1: 00
PCD         P2: 00
PCD         Lc: 15
PCD         Data: 83 13 C0 80 00 00 00 00 00 00 10 00 01 24 01 24 
        82 3D DE 7A 01
PCD         Le: 00
PICC    Successful
PICC        Data (23 bytes)
PICC            Tag 77:Response Message Template Format 2
PICC            Length:15
PICC            Value :82 02 18 00 94 08 08 01 01 00 10 01 02 00 9F 63 
        04 00 10 00 00
PICC                Tag 82:Application Interchange Profile
PICC                Length:02
PICC                Value :18 00
PICC                Tag 94:Application File Locator (AFL)
PICC                Length:08
PICC                Value :08 01 01 00 10 01 02 00
PICC                Tag 9F63:Card Transaction Information
PICC                Length:04
PICC                Value :00 10 00 00
PICC            SW1 SW2: 90 00
...

关于java - 无法使用 EMV 非接触式 (Interac Flash) 从借记卡读取 PAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22446007/

相关文章:

java - SLE4428 智能卡问题

java - Hadoop独立模式dirName.className给出classNotFoundException

java - Java 内存中的动态编译类以及依赖于这些类的类

java - Android NFC Intent 不是 "called"

android - 在 Android 中屏幕锁定时启动 NFC

java - Mac OS Java 7 小程序+智能卡问题

java - JMX 显示的线程比操作系统少得多

java - 不同线程写入/读取的原始类字段变量

java - 错误 : NullPointerException when starting activity on devices without NFC

C++ 智能卡通信