我对VISA卡的GET PROCESSING OPTIONS(GPO)命令有一些问题。
以下是我对VISA应用程序的SELECT命令的响应:
6F408407A0000000031010A535500A564953412044454249549F380C9F66049F02069F37049F1A025F2D02656EBF0C1242034761735F550255539F5A0511084008409000
我从中提取了以下PDOL:9F66049F02069F37049F1A02
我不确定标记9F66
。
我的GPO命令如下所示:
80a800000100000001000000001000823DDE7A12400
但是我得到一个解析器错误作为响应:
6A80
答案 0 :(得分:10)
您的GPO命令似乎存在很多问题:
80 A8 0000 01 00000001 000000001000 823DDE7A 1240 0
^^ ^^^^^ ^^^^^^^^ ^^^^ ^^
4. 1. 2. 3. 5.
首先,您的GPO命令发送几个没有上下文的数据字节。您需要将数据项包装到与PDOL相关的数据对象中:
83 10 wwwwwwww xxxxxxxxxxxx yyyyyyyy zzzz
您的终端交易限定符(9F66
)设置了RFU位。有效的TTQ可能如下所示:B620C000
,
B6
:
20
:
C0
:
00
:RFU 您的终端国家/地区代码无效。终端国家代码必须是BCD编码为两个字节的3位数字值。假设您想使用“124”(Cananda),正确的国家/地区代码为0124
(奥地利:0040
,英国:0826
,美国:0840
)。
Lc字节(设置为01
=一个数据字节)不反映实际数据长度。在您的情况下,实际数据长度将是16个字节,因此Lc应设置为10
。考虑到您还需要包含PDOL相关数据对象的标记和长度,您的Lc字节应设置为12
(18字节)。
您作为GPO命令显示的十六进制字符串未与字节对齐,因此您缺少Le字段的一个半字节。你乐场应该设置为Le
。
因此,您的GPO命令可能如下所示:
80 A8 0000 12 83 10 B620C000 000000001000 823DDE7A 0124 00