ISO 8583 Parser
免费 · 解析器 · 更新于 2026-08-09
在线速查

EMV TSI(tag 9B)交易状态信息逐位解析

TSI 是 2 个字节,记录终端在这笔交易里实际执行了哪些步骤——注意是「执行了没有」,不是「结果如何」。粘贴你手上的十六进制值,执行过的步骤会被点亮。它要和 TVR 搭配着读:TSI 说做了什么,TVR 说什么没通过。

示例:

每一位是什么意思

信息全在字节 1,字节 2 整个保留。定义了六个位,每一位回答的都是同一个问题——这一步到底跑没跑b8 离线数据认证(SDA、DDA 或 CDA 执行过)、b7 持卡人验证(CVM 处理执行过)、b6 卡片风险管理、b5 发卡行认证(终端校验过发卡行返回的 ARPC)、b4 终端风险管理(floor limit、连续脱机次数、随机选中联机这些检查)、b3 发卡行脚本处理(响应里 tag 71 / 72 的脚本被处理过)。

注意这个清单里缺了什么:从头到尾没有「成功」或「失败」。E800 只是说离线认证、持卡人验证、终端风控这三步都跑了——至于跑没跑通,它一个字没提。

TSI 和 TVR 是一对

TVR 记录哪些检查没通过,TSI 记录哪些步骤被执行了,单看任何一个都会误判。TVR 字节 3 干干净净不等于持卡人验证成功——如果 TSI 的 b7 是 0,这一步压根没做,「没记录失败」只是沉默而已。反过来,TVR 字节 1 的 b8(未执行离线数据认证)应该和 TSI 的 b8=0 对得上;对不上,说明这两个值八成来自两笔不同的交易。

这个交叉核对是拿到日志里一对 TVR/TSI 时最快的合理性检查:两个值先讲得通一个一致的故事,再往下花时间。

排查被拒交易时怎么用

把 DE55 里的 tag 95 和 9B 一起抠出来。如果 TVR 显示「发卡行认证失败」,先确认 TSI 的 b5 置位了——发卡行认证如果压根没执行,很可能是终端不支持这一步,这是终端配置问题,不是密钥问题,排查方向完全不同。再比如发卡行响应里带了脚本(tag 71/72),但 TSI 的 b3 是 0:终端根本没处理脚本,你的 PIN 解锁或参数更新没有到卡,下一笔照样失败。

非接交易里很多步骤本来就会被跳过,TSI 很稀疏(包括 0000)在非接里是正常的;接触式芯片交易解出 0000,基本说明交易没走到应用选择之后。

最经典的误读:TSI 置位不代表通过。「已执行持卡人验证」既涵盖 PIN 输对了的情况,也涵盖连错三次被拒的情况——执行状态在这里,结果在 TVR 和 CVM Results(9F34)里。