最近在用iso8583报文协议,经过同事的介绍,选择了第三方的报文解析库dl_c_iso8583,使用接口是挺简单的,三部就可以搞定,初始化,调用解析函数,释放资源,但是真正用到生产环境还是调试了很久,花了一两天解决了里面潜在的bug,主要修改的如下:
1.dl_iso8583_defs_1993.c,DL_ISO8583_FIELD_DEF结构定义中会有长度与类型的错误
2.dl_iso8583_fields.c,_pack_iso_ASCHEX函数中存在奇数长度会往右偏移的错误,比如00034会变成00340
3.dl_iso8583_fields.c,_unpack_iso_ASCHEX函数也是存在奇数长度从后往前取值的错误,比如00034会变成00003
基本修改了以上地方,就可以正确的对银联iso8583协议进行解析了