- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
金融行业8583培训资料
ISO8583通讯协议的背景
最开始时,金融系统只有IBM这些大的公司来提供设备,象各种主机与终端等。在各个计算机设备之间,需要交换数据。数据是通过网络来传送的,而在网络上传送的数据都是基于0或1这样的二进制数据,如果没有对数据进行编码,则这些数据没有人能够理解,属于没有用的数据。起初的X.25、SDLC以及现在流行的TCP/IP网络协议都提供底层的通讯编码协议,它们解决了最底层的通讯问题,能够将一串字符从一个地方传送到另一个地方。但是,仅仅传送字符串是没有太大意义的,怎样来解析字符串代表什么内容是非常重要的,否则传送一些“0123abcd”的字符串也是无用的乱码。此时,技术是在不断的前行,当初IBM一支独秀的局面好像已经不妙了,各种大小不一的公司都进入金融行业以求能有所斩获,呈一片百花齐放的局面。怎样来设计一个报文协议,能够将这些如雨后春笋般出现的所有公司都纳入进来。解决金融系统之间的报文交换ISO8583通用报文协议, 金融行业其实涉及到的数据内容并不是成千上万,无法统计,恰恰相反,是比较少的。交易类型、帐号、帐户类型、密码、交易金额、交易手续费、日期时间、商户代码、2磁3磁数据、交易序列号等,把所有能够总结出来的都总结起来不过100个左右的数据。那可以首先简单的设计ISO8583,定义128个字段,将所有能够考虑到的类似上面提到的“帐号”等金融数据类型,按照一个顺序排起来,分别对应128个字段中的一个字段。每个数据类型占固定的长度,这个顺序和长度都事先定义好。这样就简单了,要发送一个报文时,就将128个字段按照顺序接起来,然后将接起来的整串数据包发送出去。
任何金融软件收到ISO8583包后,直接按照定义的规范解包即可,因为整个报文的128个字段从哪一位到哪一位代表什么,大家都知道比如第1个字段是“交易类型”,长度为4位,第2个字段位是“帐号”,为19位等等。接收方就可以先取4位,再取接着的19位,依次类推,直到整个数据包128个字段都解完为止。域ISO8583域定义每个字段表示什么,还规定其内容是数字或是字符等。考虑可能出现的类型不过有以下几种:字母、数字、特殊字符、年月日等时间、二进制数据。可以把想象为医院放药的抽屉,一个抽屉预先定义好要放什么东西,比如,或者感冒冲剂,一般情况下定义放的抽屉最好永远放,不要放别的东西,当然也可以放板蓝根,但这样的话容易出错,也不太规范。数量有三种:定量也就是说定义好这个抽屉放30瓶,就放30瓶一瓶也不能多,一瓶也不能少。LLVAR:也就是说用1位字节定义数量,比如0x12表示里头放12瓶,当然你也可以理解为16+2 18瓶。但要是0x12表示12,那0x13就等于13,不要0x12 12 ,0x13 19LLLVAR:是2位字节表示数量,比如 0x01,0x04 10BITMAP BITMAP也就是位图,定义了一个数据包里包含了个域扩展位图相应的报文头最开始的64bitPrimary bit map主位图Extended bit map扩展位图。举个例子0 00 38 00 00 00 00 34
把它解开,排列一下0 1010 0000
00 0000 0000
38 0011 1000
依次类推,得到一串数字0010 0000 0000 0000 0011 1000 0000 0000 0000 0000 0000 0000 0000 0000 0011 0100然后从左到右数一下里头含有1的是那几位,上面的例子我们得到3 19 20 21 59 60 62 ,这几位含有1。也就是说接下来的报文包含有这几个域。做一个简单的例子比如消费交易,需要上送交易类型,卡号等等,定义如下卡号 第2域 LLVAR BCD 座机电话号码交易类型 第3域 长度6 BCD 900000 金额 第4域 长度12 BCD 100分时间 第7域 长度8 BCD 座机电话号码2磁道信息 第35域 LLVAR ASCII 123456 3磁道信息 第36域 LLLVAR BCD 1座机电话号码商户号 第41域 LLVAR ASCII 座机电话号码现在开始打包,首先按照长度和类型把上面的数据处理一下卡号 1座机电话号码2交易类型 900000金额 000000000100时间 座机电话号码2磁道 0座机电话号码435363磁道 000座机电话号码01商户号 0座机电话号码2接下来按照域信息生成位图因为有第2域,所以第二个位置是1,由第三域,所以第三个位置是1,。。。依此类推得到一串数字0111 0010 0000 0000 0000 0000 0000 0000 0011 0000 1000 0000 0000 0000 0000 0000转换过来,就是72 00 00 00 30 80
文档评论(0)