把 Visa BASE II CTF 文件拖进来,按交易读,而不是数定长字段。同一笔交易的多行会被聚合成一块。
如果结果整体错位,是记录长度不对——CTF 一般是每条 168 字节,但中途被重新折行过的文件就不是。
定长记录
没有位图,也没有长度前缀。每条记录一样宽(一般 168 字节),每个字段在固定偏移上。记录长度填错,所有字段会整体偏移同样的量——看起来像乱码,而不像报错。
TC / TCQ / TCR
前四个字符定性:两位交易码(TC)说明这是哪类交易,限定符(TCQ)进一步细分,TCR 号说明这一行承载的是这笔交易的哪一段。
一笔交易横跨多行
TCR 0 开启一笔交易并承载金额相关信息:卡号、金额、币种、授权码、商户。TCR 1 和 TCR 4 承载同一笔交易的补充信息。本工具会把它们归组,所以占三行的一笔交易读起来是一块。
EBCDIC
从主机上导出的文件是 EBCDIC 不是 ASCII:数字落在 0xF0–0xF9 而不是 0x30–0x39。如果文本解出来是一堆标点,手动切换编码。
每笔交易是一张卡片,上面是交易码、受理方参考号和金额。展开可以看逐字段拆解、原始行和 JSON。
卡号在页面上是脱敏的——前六后四。CSV 导出默认也脱敏,除非你勾选那个选项;勾之前最好有个理由:下载目录里一份明文卡号清单,正是你们安全评审要盯的东西。
金额按该币种的最小单位指数换算,不是一律除以 100。日元 1000 是 ¥1000,不是 ¥10.00——哪些币种不是两位,见货币指数速查表。
它读交易记录,不读报表。结算与对账报表文件是另一种格式,这里不处理。
它只覆盖一部分字段。标出名字的是能回答日常问题的那些——哪张卡、多少钱、哪个商户、哪个授权码。一条记录承载的内容比这多,其它 TCR 号以原始行呈现,不做解析。
据此下判断之前,请用你自己的规范核对。字段位置在不同报文族、不同处理机构之间并不一致。本页与你的对端给你的规范不符时,以你的规范为准。