8583协议(来自个人理解)

ISO8583报文(简称8583包)又称8583报文是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。
8583包前面一段为位图,用来确定包的字段域组成情况。位图说明一个域的使用情况,并不是每个域都一定需要使用,

将位图的第一位设为’1’,表示使用扩展位图(128个域),否则表示只使用基本位图(64个域)。
这里写图片描述
64基本域位图说明:由64个二进制位组成 每一位代表对应的域使用情况,第一位 置‘0’代表仅使用64个基本域 例:
0111 0100 0000 0000 0001 1001 0000 0000 0001 1000 0000 0001 0101 0000 0000 0000
表示 第2、3、4、6 、20 、21、24、36、37、44、46、48域在该报文中被使用,其他域不使用。

拓展128域:
这里写图片描述
拓展128域位图说明:由128个二进制位组成 每一位代表对应的域使用情况,第一位 置‘1’代表仅使用拓展域(65 – 128 域),情况与上面介绍64基本域的差不多,只是增加了65 – 128 域(拓展域)

域定义 结构体表示:
typedef struct ISO8583
{
int bit_flag; /域数据类型0 – string, 1 – int, 2 – binary/
char data_name; /域名*/
int length; /数据域长度/
int length_in_byte;/实际长度(如果是变长)/
int variable_flag; /是否变长标志0:否 2:2位变长, 3:3位变长/
int datatyp; /0 – string, 1 – int, 2 – binary/
char data; /存放具体值*/
int attribute; /保留/
} ISO8583
这是一个域的基本组成说明,具体每个域都包含多个字段,,具体定义说明根据报文文档

8583协议的报文域编码格式分为:
供参考 具体定义看文档:
这里写图片描述
这里写图片描述
这里写图片描述
例:-消费
这里写图片描述

说明:编码表中“格式”一栏为空表示该数据元为定长型,其长度在“长度”栏中注明。格式为LLVAR表示该数据元长度可变,数据元前有两位数字指示长度,实际使用的长度范围在“长度”栏中注明。格式LLLVAR表示该数据元长度可变,数据元前有三位数字指示长度,实际使用的长度范围在“长度”栏中注明。指示长度的数字采用压缩型BCD码数字。(具体看实际文档说明,部分文档定义长度以字节为单位)

例:
卡号 第2域 LLVAR BCD 5309987876545342
交易类型 第3域 长度6 BCD 900000
金额 第4域 长度12 BCD 100分
时间 第7域 长度8 BCD 20030802
2磁道信息 第35域 LLVAR ASCII 123456
3磁道信息 第36域 LLLVAR BCD 123456001
商户号 第41域 LLVAR ASCII 98765432

位图:2、3、4、7、35、36、41,写出对应的二进制码
0111 0010 0000 0000 0000 0000 0000 0000 0011 0000 1000 0000 0000 0000 0000 0000
最后结果为:7200000030800000
卡号:165309987876545342
采用bcd码压缩 数据长度的单位为数字位数LLVAR (两位的bcd码)表示长度
交易类型:900000
金额:000000000100
时间:20030802
2磁道信息:06313233343536
LLVAR ASCII 长度单位为字符数 长度位为06 数据字符进行ASCII 以16进制转换 313233343536
3磁道信息:009123456001
LLLVAR 长度为三个数字为009
商户号:083938373635343332

注意本文档中:长度字段 所采用的均为压缩BCD码 文档中的类型对应的是域的数据字段的编码类型

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值