初识8583协议

好长时间没来总结笔记了,源于新入职适应环境要学很多东西,有点小忙,当然这也是为自己的懒惰找的借口啦,哈哈~

近来熟悉业务在看销售点终端(POS)应用规范,于是接触到了8583报文协议,来做点笔记。

8583协议是基于ISO8583报文国际标准的包格式的通讯协议,多用于POS开发,它就是一种解决金融系统之间的报文交换的协定,各个计算机设备之间通过网络来传送来交换数据,这些数据都是基于0或1这样的二进制数,8583协议等于就是对这类数据进行编码,方便人们理解这些数据的含义。

8583包最多由128个字段域组成,就是表示金融行业涉及的数据内容,比如说账户、交易类型、交易金额、密码、交易日期、时间、商户等等的数据内容,当然,每个字段域都是有统一的规定的,规定好顺序排起来一一对应的。并且这些字段域有定长与变长之分,变长的字段域数据规定了前面几位表示长度描述,还有数据类型都已经规定,如字母、数字、特殊字符、年月日等时间、二进制数据等这类。

8583包前面一段报文头为位图,用来确定包的字段域组成情况,因为有的时候,我们并不需要128个字段,而只需要其中几组字段数据,就用位图来表示后面的数据是哪几组字段数据。由于128个字段域确实很多,所以ISO8583把最最常用的字段都放到了前64个字段中,然后规定位图中的第一位如果为“1”,表示使用扩展位图(128个域),否则就使用基本位图(64个域),如使用某数据域,就在位图中相应的位设为“1”。

如使用41域,需将位图的41位设为'1'。

(64个域)0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000
第41位为1

理解了以上,就是按照8583的规定进行初始化,打包,解包,得到某域的值,然后写业务了。下面记录一些规范定义内容。

数据类型

POS终端与POS中心之间的交换消息中,各数据元类型如下所列:
——A 字母向左靠,右部多余部分填空格。
——AN 字母和/或数字,左靠,右部多余部分填空格。
——ANS 字母、数字和/或特殊符号,左靠,右部多余部分填空格。
——AS 字母和/或特殊符号,左靠,右部多余部分填空格。
——B 二进制bit位。
——DD 日。
——hh 时。
——LL 可变长域的长度值(二位数)。
——LLL 可变长域的长度值(三位数)。
——MM 月。
——mm 分。
——N 数值,右靠,首位有效数字前充零。若表示金额,则最右二位为角分。
——S 特殊符号。
——ss 秒。
——VAR 可变长域。
——X 借贷符号,在数值之前,D表示借,C表示贷。
——YY 年。
——Z 由ISO 7811和ISO 7813制定的磁条卡第二、三磁道的数据类型。
——CN BCD压缩编码数值。

对可变长数据元,以下例说明:

  • 变量XYZ的数据类型为ANS...999(LLLVAR),则表示:该变量中可含字母、数字和特殊符号,最长不超过999个字符,长度由三位数字确定。
  • 变量XYZ的数据类型为N...999(LLLVAR),则在压缩时,其长度位用右靠的BCD码压缩,而其后紧随的数字内容用左靠的BCD码压缩。这是为了保证有效内容和其位数中间无缺省填充值。若不为偶数位,左靠的数字内容后补零。由于有长度位表征该域有效内容的长度,因此后补零不会改变该域的真实值。

注:本文档中声明的压缩变量属性是针对POS终端与POS中心之间的消息,POS中心与任何金融机构之间的消息将全部采用ASCII码且不压缩的格式。

ISO8583域说明

初识8583协议_第1张图片
截图取自网络
初识8583协议_第2张图片
截图取自网络
初识8583协议_第3张图片
截图取自网络
初识8583协议_第4张图片
截图取自网络
初识8583协议_第5张图片
截图取自网络
初识8583协议_第6张图片
截图取自网络
截图取自网络
初识8583协议_第7张图片
截图取自网络
初识8583协议_第8张图片
截图取自网络

初识8583协议_第9张图片
Paste_Image.png
截图取自网络

其他每个域的具体描述还是见文档吧,比较详细点。最近感觉大脑都 不够用了,要学的东西太多了,接触了不少新东西,感觉很受益,都得多做笔记总结才行呢。好好加油啦!

你可能感兴趣的:(初识8583协议)