4

我在跟踪数据处理方面遇到问题:

在各种 Amex 测试用例中标记为“ANSI”卡的各种 Amex 卡似乎不包含服务代码。没有迹象表明服务代码不包含在轨道数据中(这包括没有分隔符等)。您将如何确定跟踪中不包含服务代码并避免错误地将任意数据用作服务代码?

例子:

标准轨道: 374245455400001=131210112011234500000 – 服务代码为 101

没有服务代码的跟踪: 374245455400001=1412120112345 - 因此在这种情况下,120 被错误地解释为服务代码,而它构成了自主数据的一部分。

谢谢。

4

3 回答 3

6

我对两种类型的美国运通卡有此规范:-
ANSI
字段名称长度
起始标记 1
帐号 (PAN) 15
字段分隔符 1 '='<br/> 到期日期 (YYMM) 4
生效日期 (YYMM) 4
自由数据5
结束标记 1
LRC 1
总计:32
ISO
字段名称长度
起始标记 1
帐号 (PAN) 15
字段分隔符 1 '='<br/> 到期日期 (YYMM) 4
服务代码 3
生效日期 (YYMM) 4
自由数据 8
语言代码 2
End Sentinel 1
LRC 1
总计:40

所以我检查了 Track 2 的长度,如果它小于 40,那么我就懒得检查服务代码了。

于 2015-03-11T15:48:35.593 回答
1

120 是您的服务代码。轨道 1 和轨道 2 上到期年份和月份之后的前三个数字是服务代码。101 不是事实上的标准。

于 2014-08-30T16:59:02.483 回答
0

OP找到的解决方案:

万一有人遇到同样的问题,我会遇到这种情况的原因:对于 ANSI,轨道 1 中的 PAN 长度为 17,带有空格,而对于 ISO 7813,长度为 15。所以如果长度为 15,你就不能在您的逻辑中包含服务代码。

于 2015-11-01T11:46:55.377 回答