全面掌握IS8583报文协议.docVIP

  • 17
  • 0
  • 约1.49万字
  • 约 20页
  • 2018-10-29 发布于广东
  • 举报
全面掌握IS8583报文协议.doc

全而学握ISO8583报文协议 我刚进入金融行业时,就知道了 IS08583报文协议,我想可能我还没进入这个行业都己 经听过Y,可知ISO8583的影响力奋多人了。最初刚接触它吋,确实对其屮的一些细节概 念不是很清晰,对有些地方比较迷惑。鉴于此,我想很多hd行也必然会经历hd样得阶段,所 以我写下本文,以便大家能够少走一些弯路。同时,我在网上写K我要写“全面掌握ISO8583 报文”和“符合CEN/XFS (即WOSA/XFS)规范的SP编写”两篇文章吋,很多人都询问我什 么时候能够写出来,可知许多人是需要了解这方而的知识的,即使我时问不是很多,也得从 fi将这两篇文章写出来,给需要的人提供一些参考。 如果单纯的讲1S08583那些字段的定义,我觉得没冇什么意思,标准中己经对每个字段 解释的非常详细了,如果你觉得理解英文版的ISO8583规范奋些W难,网上也奋同行为我 们翻译好的中文版ISO8583规范,所以我的目的是达到阅读本文后能够对ISO8583知其然, 亦知其所以然,使以前某木没冇接触它的人也能够达到掌握ISO8583报文规范。 好了,我们该转入正题了。 最丌始时,金融系统从柯IBM这些人的公M来提供设备,象各种主机与终端等。在各个 计算机设备之间,需要交换数据。我们知道数裾是通过网络来传送的,而在M络上传送的数 据都是基丁0或1这样的二进制数据,如果没有对数据进行编码,则这些数据没有人能够理 解,属于没有用的数据。起初的X.25、SDLC以及现在流行的TCP/IP网络协议都提供底层 的通讯编码协议,它们解决了最底层的通讯问题,能够将一中字符从一个地方传送到另一个 地方。但是,仅仅传送字符申是没有太人意义的,怎样来解析字符申代表什么内稃是非常重 要的,否则传送一些“0123abcd”的字符串也足无川的乱码。 让我们随着时光回到几十年前的某个时刻,假设我们被推到历史的舞台上,由我们來设 计一个通川报文协议,來解决金融系统之间的报文交换,暂且称该协议叫做ISO8583协议。 此时,技术是在不断的前行,当初IBM—文独秀的局而好像已经不妙了,各种人小不一的 公司都进入金融行业以求能冇所斩获,呈一八百花齐放的局面。我们怎样来设计一个报文协 议,能够将这些如雨后春笋般出现的所有公司都纳入进来,其实也不是一件很简单的事。 我们还是先-?步步的來考虑吧。金融行业其实涉及到的数据内界丼不是成T*上万,无法 统计,恰恰相反,是比较少的。我们都可以在心底数得过來,象交易类型、帐号、帐广类型、 密码、交易金额、交易手续费、日期时间、商户代码、2磁3磁数裾、交易序列号等,把所 有能够总结出来的都总结起来不过100个左右的数据。那我们可以首先简单的设计ISO8583, 定义128个字段,将所有能够考虑到的类似上面提到的“帐号”等金融数据类型,按照一个顺 序排起来,分别对应128个字段中的一个字段。每个数据类型占固定的长度,这个顺序和长 度我们都事先定义好。这样就简单了,要发送一个报文时,就将128个字段按照顺序接起来, 然后将接起来的整串数椐包发送出去。 任何金融软件收到lSO8583ti后,且接按照我们定义的规范解乜即可,因为整个报文的 128个字段从哪一位到哪-?位代表什么,人家都知道,只要知道你的数据包是ISO8583包即 可,我们都已经定义好丫。比如第1个字段是“交易类型”,长度为4位,第2个字段位是“帐 号”,为19位等等。接收方就可以先取4位,再取接着的19位,依次类推,直到整个数据 乜128个字段都解完为止。 实这种做法真是简单直接,基木上就可以满足需要了。不过我们有几个问题要思考下: 1、 我怎么知道每个字段的数据类型呢,足数字还足字符? 2、 每个传送的报文都把128个字段都传过去,那网络带宽能够承受得了,有时候我可能只 需要其中5个字段,结果多收到了 123个无用的字段。 3、 如果我某些字段的长度不固定,属于变长怎么办,因为你现在解包是当作数据包毎个字 段都是间定的,用C语言解包时直接依靠指针取同定长度的一串字符做为一个字段。 我们来一一解决这些问题。 第一个问题简单,我在定义ISO8583吋除了定义毎个字段表示什么,还规定其内界是数 字或是字符等即可。考虑可能出现的类型不过有以卜JL种:字母、数字、特殊字符、年月円 等时间、二进制数据。比如我对128个字段中的“商户类型”字段定义艽长度是15,同时定 义W类型为字母。再精细点,如果“商户类型”里血的数据同时包括数字和字母呢?那我们就 定义其类型为字母也可,为数字也可,即一个字段可以同时属于多个类型。 第二个问题稍微复杂点。木质就是如果我只传128个字段的5个字段,接收方怎么知 道我传T哪儿个字段给它了。要足我们把剩下的123全部填成0或艽他特殊标识,标明该字 段不需要使用

文档评论(0)

1亿VIP精品文档

相关文档