ISO 8583 Parser
payments · learning path

ISO 8583 学习路径

ISO 8583 是卡支付用的报文格式:一个报文类型,一张说明「有哪些域」的位图,再加上这些域本身。它之所以让人觉得难,多半是学的顺序不对——很多人第一次接触到的是一个芯片标签,而那时候他连这个标签所在的域在哪都还找不到。

这一页只提供顺序。下面每一个链接都是站内已有的文章或工具,没有新增内容。

共 25 步,通读一遍大约 2.1 小时。不用一次读完,也不用全部读完——第一到第三阶段就已经覆盖了日常支付工作里大部分会用到的东西。每一步都写了它是干什么用的,你已经能讲清楚的可以直接跳过。

整条路径一览

第一阶段 先搞清楚是谁在跟谁说话 约 4 分钟 第二阶段 把一条报文亲手拆开 约 17 分钟 第三阶段 不用背,会查就行 约 24 分钟 第四阶段 完整报文,以及会出错的那些路径 约 42 分钟 第五阶段 芯片数据:DE55 里面是什么 约 30 分钟 第六阶段 报文之后:清算与对账 约 8 分钟

第一阶段先搞清楚是谁在跟谁说话

两篇短文,合计四分钟。后面每一篇文章都默认你已经知道这些名词。

  1. 信用卡是怎么运作的:四方模型入门

    持卡人、商户、收单机构、发卡机构,再加卡组织。先认清这五个角色,后面报文里那些「机构标识」字段才不会看起来像一串没来由的数字。

    约 2 分钟
  2. 一笔交易的完整生命周期:授权 → 清算 → 结算

    这是三件不同的事,很多人当成一件。「账对不上」的问题,大多是从把这三步混为一谈开始的。

    约 2 分钟

第二阶段把一条报文亲手拆开

能不能看懂一段十六进制,就取决于这一阶段。顺序不要换:位图告诉你有哪些域,格式记号告诉你每个域在哪里结束,编码告诉你那是几个字节。

  1. 看懂 ISO 8583 报文:MTI、位图与数据域

    两分钟看完整条报文的骨架。这一阶段后面几篇,讲的就是这三个部分的细节。

    约 2 分钟
  2. ISO 8583 位图手算完全指南

    位图决定了这条报文里有哪些域。位图读错,后面每一个域的起止位置都会错位——所谓「解析出来全是乱码」,多半就是这么来的。

    约 6 分钟
  3. ISO 8583 字段格式记号怎么读:n..19、ans...999、LLVAR

    这套记号告诉你:取值之前要先读几位长度。少读或多读这几位,报文就会从错误的位置被切开。

    约 3 分钟
  4. EBCDIC / ASCII / 压缩 BCD 对照(CP500)

    同一个值,在 ASCII、压缩 BCD、EBCDIC 下占的字节数不一样。不先判断手上这段是哪种编码,数出来的位置都只是猜的。

    约 6 分钟
动手练 · 进入下一阶段之前,先动手练:

第三阶段不用背,会查就行

到这里你已经能把报文切成一个个域了,这一阶段是把域的值翻译成含义。这些码表没人背得下来,当成随时打开的工具页用就好。

  1. ISO 8583 数据域完整列表:128 个域逐一对照

    先通读一遍,知道哪类信息大概在哪个域,之后就当查询页反复回来用——这是全站唯一一篇你会每周打开的文章。

    约 10 分钟
  2. ISO 8583 MTI 报文类型码完整对照表

    开头四位说明这是什么报文。读不懂它,你就分不清一条请求和它的重发。

    约 6 分钟
  3. ISO 8583 处理码:DE3 完整对照表

    MTI 说明这是什么报文,DE3 说明这是什么交易。两个不同的问题,答案在两个不同的域。

    约 2 分钟
  4. ISO 8583 DE39 响应码大全(附处理建议)

    出了问题第一个看的就是这个域,别人来问你的时候也常常只丢给你一个响应码。

    约 2 分钟
  5. POS 输入方式码:DE22 完整对照表

    卡片信息是怎么读进来的:芯片、降级、电商。同一张卡、同样的金额,这个域不同,性质就不同。

    约 2 分钟
  6. STAN 和 RRN 有什么区别?一分钟看懂

    两个跟踪号,经常被人搞混。现在花两分钟分清楚,以后对记录的时候能少吵一架。

    约 2 分钟

第四阶段完整报文,以及会出错的那些路径

前面练的都是一条正常报文。真实链路上有重发、有超时,还有批准金额和你请求的不一样。

  1. ISO 8583 报文示例:0100/0200/0400/0800 全注释样例

    前三个阶段的自测题:这八条报文你能逐个域看下来,说明基础过关了。

    约 8 分钟
  2. ISO 8583 报文解析失败:两类原因与排查顺序

    这条路径上最长的一篇,也是最值回时间的一篇:解析结果不对时先排除什么,包括那些根本不报错的情况。

    约 13 分钟
  3. 0800 / 0810 网络管理报文:签到、心跳与密钥交换

    链路上唯一不涉及金额的报文,也是一条新链路接通时最先要跑通的报文。

    约 6 分钟
  4. 冲正、超时与重发:ISO 8583 异常路径完全指南

    响应一直没回来的时候,你该给对方发什么;处理不对,一次重发就变成了重复扣款。

    约 9 分钟
  5. 部分批准与 DE 54:批准金额和你请求的不一样时

    批准了,不等于按你请求的金额批准。在写下「批准即全额」这行代码之前,先看这篇。

    约 6 分钟
动手练 · 动手练:
  • 首页解析器 — 把示例报文贴进去,再贴一条你自己手上的

第五阶段芯片数据:DE55 里面是什么

DE55 不是又一个定长域,它是一堆标签的容器,所以要单独排一条顺序。别从这里开始学:连 DE55 在哪都还找不到的时候,下面这些标签是没有意义的。

  1. EMV 术语表:ARQC / TVR / AIP / CVM 一句话讲清

    一整面墙的缩写,每个一句话。先扫一遍,后面五篇才不会每句话里有四个不认识的词。

    约 2 分钟
  2. EMV 标签大全:DE55 常见 66 个标签的长度、格式与含义

    整个阶段的查询表:DE55 里真正会遇到的标签,各自的长度、格式和含义。

    约 10 分钟
  3. AIP、TVR、TSI:一笔交易里三个标签各记什么

    这三个标签经常被混着引用,但它们记的根本不是一回事。这里分清了,后面三篇才不会读串。

    约 5 分钟
  4. TVR 各位含义:EMV 标签 95 五字节全解

    别人拿一笔「看着不太对」的芯片交易来问你时,最常甩给你的就是这个标签,这里逐位讲清。

    约 3 分钟
  5. ARQC / TC / AAC:看懂标签 9F27

    卡片自己也会给出一个结论,它和你从第三阶段起一直在看的响应码不是同一个域。

    约 4 分钟
  6. CVM List(标签 8E):凭什么这笔要输 PIN、那笔不用

    用户真正会问的问题——为什么这笔要输密码、那笔不用——答案就在报文里。

    约 6 分钟

第六阶段报文之后:清算与对账

授权报文只是一半。另一半第二天以文件的形式到达,而且用的是另一套字段口径。

  1. Mastercard 授权与清算报文:同一件事,两套字段

    同一笔交易,用两套字段各记了一遍。清算记录里「少了某个域」,看完这篇你就知道其实没少。

    约 4 分钟
  2. 退款怎么匹配回原交易:五个候选键

    退款报文里没有任何一个域直接指向原交易。五个候选键分别由谁生成、各自在什么情况下匹配不上。

    约 4 分钟
动手练 · 清算文件本身:

走完之后

没有结业证书这回事——判断标准是:给你一条没人加过注释的报文,你能说出它是什么、它在请求什么、对方回了什么。文章总目录把站内所有文章按主题(而不是按顺序)分组,工具总目录里是全部速查与解析工具。