期货交易自动化论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 132|回复: 0

问一个菜鸟问题:8583是什么东西,规范?流程?产品? - 金融行业 - ITPUB论坛-专业的IT技术社区

[复制链接] |主动推送

285万

主题

285万

帖子

855万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8553710
发表于 2022-9-11 11:35:18 | 显示全部楼层 |阅读模式
你可以把它想象为医院放药的抽屉
一个抽屉预先定义好要放什么东西,比如伟哥,或者感冒冲剂
一般情况下定义放伟哥的抽屉最好永远放伟哥,不要放别的东西
当然你也可以放板蓝根,但这样的话容易出错,也不太规范。
数量是这么规定的,有三种情况:
首先是定量,也就是说定义好这个抽屉放30瓶伟哥,就放30瓶
一瓶也不能多,一瓶也不能少。
其次是LLVAR,也就是说用1位字节定义数量,比如0x12表示里头
放12瓶,当然你也可以理解为16+2=18瓶。但要是0x12表示12,那0x13就等于13,不要0x12=12 ,0x13=19
最后是LLLVAR,是2位字节表示数量,比如 0x01,0x04 = 104
域也就是这样的,一共有64个域,每个域预先定义了内容和长度
有一个叫做BITMAP的,也就是位图,定义了一个数据包里包含
了几个域。举个例子
20 00 38 00 00 00 00 34
你把它解开,排列一下
20 = 0010 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     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
好了我们现在开始打包
首先按照长度和类型把上面的数据处理一下
卡号        165309987876545342
交易类型     900000
金额        000000000100
时间        20030802
2磁道       06313233343536
3磁道       0009123456001
商户号     083938373635343332
接下来我们按照域信息生成位图
因为有第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 00 00 这个就是BITMAP了
然后把上面的数据按照BITMAP+每个域的内容,依次排列
就得到这个包的内容了
7200000030800000165309987876545342900000000000000100
20030802063132333435360009123456001083938373635343332
前头再加上TPDU和MSGID就是最后的数据包
很简单把,解包也一样的。
写得不好,让各位见笑了。
至于是BCD还是ASCII应该不是固定的吧,是不是看各个银行的规定了
比如工商银行的bitmap#2格式是n..19 LLVAR
说明:2个字节长的长度域+1..19,最多可达21字节
这里就应该是ASCII编码
TPDU和MSGID是什么意思
呵呵,我刚刚开始接触,好多不是很明白
接口是这样定义的
位元        字段名称        属性        长度        包中长度        包中格式                        
2        卡号        LLVAR        ..19        ..11        BCD
3        处理代码        N        6        3        BCD
4        交易金额        N        12        6        BCD
看“包中格式”这一段。
TPDU是一串10位的数字,跟网控器有关
网控器是这样的一台设备。它里头有很多张卡
有些卡负责接受终端通过电话或者别的途径传送上来的数据包,叫做下联卡,
有些卡负责把下联卡的数据通过串口或者网线转发给后台前置机,叫做上联卡
tpdu的特定位定义了下联卡收到数据以后,转发到哪一块上联卡。
上联卡根据tpdu相关信息把数据转发给特定的主机(因为现在的上联卡比如LET61可以指向很多台主机的),tpdu一般银行都是6000000000,也有6000060000或者其他,具体问银行科技部门就可以了。
MSGID表示这个报文是做什么的,比如是消费还是查余额。接口定义都有的
比如 0200或者0800之类。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|期货交易自动化论坛

GMT+8, 2024-4-30 20:39 , Processed in 0.072740 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表