ISO8583报文封装/解析包使用说明
翻山倒海的找资料参考、找文档阅读、找军师请教、找银联咨询,捣腾各种问题,在这里顺便做个笔记。
代码说明
配置文件
src/main/resources/config/iso8583_[spec].xml
其中spec为支付通道简称,必须与MessageFactory中的通道名称定义一致
org.bosssoft.agiledata.iso8583
ISO8583Constants--------------------ISO8583报文常量类
Message8583-------------------------ISO8583消息类,包含有报文组装/解析等一系列处理,必须由工厂类生成
MessageFactory----------------------ISO8583消息消息工厂类,负责生成Message8583类
org.bosssoft.agiledata.iso8583.config
ISO8583Config-----------------------ISO8583报文配置类,用于映射配置文件汇总的某个具体交易
ISO8583ConfigGroup------------------ISO8583报文配置组,报文配置文件整体映射类,对应某个通道,包含此通道下多个交易配置信息(ISO8583Config)
ISO8583Field------------------------ISO8583报文域数据封装,对应具体的一个报文域的配置信息
ISO8583Mac--------------------------ISO8583 Mac配置
org.bosssoft.agiledata.iso8583.entity
AbstractRequestMsg------------------ISO8583请求报文基类,所有的请求报文必须继承此类
AbstractResponseMsg-----------------ISO8583反馈报文基类,所有的反馈报文必须继承此类
CancelRequest-----------------------消费撤销请求报文类
CancelResponse----------------------消费撤销反馈报文类
ConsumRequest-----------------------消费请求报文类
ConsumResponse----------------------消费反馈报文类
DownParamRequest--------------------下载参数请求报文类
DownParamResponse-------------------下载参数反馈报文类
GetKeyRequest-----------------------Pin Key /Mac Key请求交易请求类(一卡通特有交易)
GetKeyResponse----------------------Pin Key /Mac Key请求交易反馈类(一卡通特有交易)
RefundRequest-----------------------退货请求报文类
RefundResponse----------------------退货反馈报文类
ReverseConsumeRequest---------------消费冲正反馈报文类
ReverseConsumeResponse--------------消费冲正反馈报文类
SignOutRequest----------------------签退请求报文类
SignOutResponse---------------------签退反馈报文类
SignRequest-------------------------签到请求报文类
SignResponse------------------------签到反馈报文类
org.bosssoft.agiledata.iso8583.exception
BusinessException-------------------业务异常
ConfigErrorException----------------配置错误异常
ConfigNotFoundException-------------未找到对应通道配置异常
DesCryptionException----------------DES加密异常
EmptyValueException-----------------空值异常
IllegalDataException----------------请求数据不合法异常
MacException------------------------MAC计算异常
PinBlockException-------------------PINBlock计算异常
org.bosssoft.agiledata.iso8583.util
BCDUtil-----------------------------BCD相关工具方法
DesUtil-----------------------------DES加解密工具类
ISO8583Socket-----------------------ISO8583Socket通讯类,报文发送读取Socket工具类
ISO8583Util-------------------------ISO8583报文工具类,包含各种数据转换等
MACUtil-----------------------------MAC工具类
MD5---------------------------------MD5工具类
PINUtil-----------------------------PIN加解密工具类
配置说明
配置文件标签及属性说明
config------------根标签
respLen------------------反馈报文,报文长度所占位数
trans--------------------具体的交易配置
head---------------------交易报文头配置
type---------------------报文类型配置
body---------------------报文体配置
field----------------------报文域
index------------------------报文域位置
alias------------------------报文域别名,系统通过名称对应对域进行赋值
length-----------------------报文域长度,定长时为长度定义,变长时为最大长度
lengthType-------------------报文域长度类型
FIX(定长)
LLASC(二位变长,长度使用ASCII码存储,占用2个字节)
LLLASC(三位变长,长度使用ASCII码存储,占用3个字节)
LLBCD(二位变长,长度使用BCD压缩,占用1个字节)
LLLBCD(三位变长,长度使用右靠BCD压缩,占用2个字节(前端补零))
mode-------------------------报文域存储方式
BCD(BCD压缩)
ASC(ASCII码表示)
BIN(二进制)
align------------------------域对其补位方式,默认情况下,根据存储方式设定对齐补位方式,BCD:左补0,ASC:右补空格,BIN:左补0
RIGHTSPACE(左靠,长度不够右边补空格)
LEFTSPACE(右靠,长度不够左边补空格)
RIGHTZERO(左靠BCD压缩(数据长度为奇数),末尾补零)
LEFTZERO(右靠BCD压缩(数据长度为奇数),行首补零)
req--------------------------请求时域是否必须出现 M(必须出现) C(可以为空) 默认:C
resp-------------------------反馈时域是否必须出现 M(必须出现) C(可以为空) 默认:C
value------------------------域默认值,如传入数据中此域有值,则覆盖默认值
特殊变量:特殊变量使用%开头,后跟一位英文作为类型定义,之后为数据域格式定义,代码会根据特殊变量定义自动为域按照要求进行赋值
%d:当日日期时间。例如:%dyyyyMMdd:当前日期年月日
combo------------------------域组合值,多个值之前用+分割,如使用单引号标记,则认为固定值,直接拼接在内容中
mac--------------------------mac定义,出现此域用于定义MAC明文由哪些域组成
keySequence------------------mac明文组成值,不同域使用竖线'|'分割,特殊域可以使用关键字声明,可用的关键字为:head,type,bitMap,
调用说明
进行中
工具文档
银联
银联公共缴费(电力 运营商 广电).zip
工具
新大陆 Newland POS Debug(v1.16).zip
des算法工具.exe
post工具.zip