ISO8583 各域详解 8583 协议的报文域编码格式分为: BINARY、CHAR、NUMERIC、LLVAR、LLLVAR、LLLVAR_NUMERIC 这几种格式
BINARY 采用二进制编码(8 位二进制数编码为一个字节)
CHAR、LLVAR、LLLVAR 为ASC(即正常的getBytes(Encoding))编码
NUMERIC、LLLVAR_NUMERIC 采用 BCD(半个字节表示一个 10 进制数,每两位编码为一个字节)编码
CHAR、BINARY、NUMERIC 都需要指定长度
CHAR 类型左对齐、右补空格
NUMERIC 右对齐、左补零
LLVAR 域前加一个字节的字节长度(采用 bcd 编码)
LLLVAR 域前加两个字节的字节长度(采用 bcd 编码)
LLLVAR_NUMERIC 域前加两个字节的长度(注:非字节长度,而是数字的长度,即字节长度的两倍)(采用 bcd 编码)
代码中会在 IsoField setValue 时进行格式化,组装报文时计算 LLVAR 等域长
ISO8583 域说明 ATM、前置机间通讯采用 ISO8583 包格式
以下是位元、报文等的定义
位元定义: (注:带*号的本行没用) 位元 数据元名称 格式 属性 会晤报文头 An8 报文类型 an4 - (主位图) B64 1 (扩展位图) B64 2 主帐号 LLVAR n
19 3 处理代码 n6 4 交易金额 n12 5 清算金额 n12 6* 持卡人签单金额 n12 7 传输日期和时间 MMDDhhmmss n10 8* 持卡人签单手续金额 n8 9 清算兑换率 n8 10* 持卡人签单兑换率 n8 11 系统跟踪审计号 n8 12 本地交易日期和时间 YYMMDDhhmmss n6 13 本地交易日期 YYMM n4 14* 截止日期