我在使用 VISA 卡的 GET PROCESSING OPTIONS (GPO) 命令时遇到一些问题。
以下是我对 VISA 应用程序的 SELECT 命令的响应:
6F408407A0000000031010A535500A564953412044454249549F380C9F66049F02069F37049F1A025F2D02656EBF0C1242034761735F550255539F5A0511084008409000
我从中提取了以下 PDOL:9F66049F02069F37049F1A02
我不确定标签9F66
.
我的 GPO 命令如下所示:
80a800000100000001000000001000823DDE7A12400
但我得到一个解析器错误作为响应:
6A80
您的 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
, with
-
B6
:
- 支持磁条模式@bit 8
- 支持EMV模式@bit 6
- 支持EMV接触芯片@bit 5
- 支持在线模式@bit 4
- 支持在线 PIN @bit 3
- 支持签名@bit 2
- 其他位 = RFU
-
20
:
- 不需要在线密码@bit 8
- 不需要 CMV @位 7
- (接触式芯片)支持离线 PIN @bit 6
- 其他位 = RFU
-
C0
:
- 支持@Bit 8的发行者更新处理
- 支持@Bit 7 的消费类设备 CVM
- 其他位 = RFU
-
00
: RFU
您的终端国家代码无效。终端国家代码必须是 BCD 编码为两个字节的 3 位数字值。假设您想使用“124”(加拿大),正确的国家/地区代码是0124
(奥地利:0040
, UK: 0826
, USA: 0840
).
Lc 字节(设置为01
= 1 个数据字节)不反映实际数据长度。在您的情况下,实际数据长度为 16 个字节,因此 Lc 应设置为10
。考虑到您还需要包含 PDOL 相关数据对象的标签和长度,您的 Lc 字节应设置为12
(18 字节)。
作为 GPO 命令提供的十六进制字符串未与字节对齐,因此缺少 Le 字段的一位半字节。 You Le 字段应设置为Le
.
所以你的 GPO 命令可能如下所示:
80 A8 0000 12 83 10 B620C000 000000001000 823DDE7A 0124 00
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)