zoukankan      html  css  js  c++  java
  • 转:8583报文手动组包——详细分析每个示范域

    8583报文作为一种应用较广的报文,有它独特的格式。

    网上有关8583报文的说明很多。但涉及到每个域的详细例子就较少了。这里列出各个域的详细例子,供参考。

    8583报文:

    报文组成:

    报文头【长度(2字节)+TPDU(5字节)+报文版本号(2字节)】+信息类型+位图+数据
    TPDU: 6000100000
    报文长度:整体报文长度 -报文头中的2字节长度。如8583整体报文长度为100,那么报文长度为98.用两字节的BCD码表示(16进制)为0062。
    手动组装的8583报文:
    0072600010000001000800203801000404000880000000000110101112240009303030313531000800350004343136310009303030303031303031

    分析组包过程:
    0072(长度)
    6000100000(TPDU)
    0100(版本号)
    0800(信息类型)
    2038010004040008(64位图)
    800000(3域)
    000001(11域)
    101011(12域)
    1224(13域)
    0009(24域)
    303030313531(38域)
    00080035000434313631(46域)
    0009303030303031303031(61域)
    按顺序拼接起来即可。
    详细的分析,在单独域组包中可以看到。

    单独域组包

    2域单独组包:

    格式:变长类型:BCD码表示最大
    十六进制(BCD码>1001加6):4000000000000000
    166333021402021781
    计算报文长度:0034
    组装8583报文:00346000100000010000804000000000000000166333021402021781

    格式:定长 类型:
    十六进制(BCD码>1001加6):2000000000000000
    3域内容:800000 ,按规范转为:800000
    报文长度:0028
    组装8583报文:00286000100000010000802000000000000000800000

    格式:定长 类型:压缩时用
    十六进制(BCD码>1001加6):1000000000000000

    4域内容:1.01,按规范转为:000000000101
    格式:MMDDhhmmss

    二进制:0000 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
    十六进制(BCD码>1001加6):0200000000000000
    7域内容:0228102030,按规范转为:0228102030
    格式:定长 类型:压缩时用
    十六进制(BCD码>1001加6):0020000000000000

    11域内容:000001,按规范转为:000001
    格式:定长, 类型:压缩时用

    十六进制(BCD码>1001加6):0010000000000000

    12域内容:203012,按规范转为:203012
    格式:定长 类型:压缩时用 描述:交易在终端上发生的时间。

    二进制:0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
    十六进制(BCD码>1001加6):0008000000000000
    13域内容:0430,按规范转为:0430
    格式:定长 类型:压缩时用 描述:卡的有效期,月月年年
    十六进制(BCD码>1001加6):0004000000000000

    14域内容:0415,按规范转为:0415
    格式:定长 类型:压缩时用描述:清算日期

    十六进制(BCD码>1001加6):0002000000000000

    15域内容:1229,按规范转为:1229

    格式:变长, 类型:BCD码表示最大描述:受理机构标识码。该代理机构应是已被批准入网,能为商户提供收单服务的入网机构。
    二进制:0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000
    十六进制(BCD码>1001加6):0000000100000000
    32域内容:2001,按规范转为:042001
    格式:变长 类型:28个字节的变长 描述:扩展主账号信息域
    二进制:0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000
    十六进制(BCD码>1001加6):0000000040000000
    34域内容:198809,按规范转为:06313938383039
    格式:变长, 类型:1个字节用右靠描述:写在卡二磁道的数据。
    二进制:0000 0000 0000 0000 0000 0000 0000 0000 0010 0000 0000 0000 0000 0000 0000 0000
    十六进制(BCD码>1001加6):0000000020000000
    35域内容:EB5B9DB3618B836C1E334C8EBD8AAFA0C0777471F9F41B19,按规范转为:24EB5B9DB3618B836C1E334C8EBD8AAFA0C0777471F9F41B19
    格式:变长, 类型:2个字节用右靠描述:写在卡三磁道的数据。
    二进制:0000 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000
    十六进制(BCD码>1001加6):0000000010000000
    36域内容:EB5B9DB3618B836C1E334C8EBD8AAFA0C0777471F9F41B19,按规范转为:0024EB5B9DB3618B836C1E334C8EBD8AAFA0C0777471F9F41B19
    格式:定长 类型:12个字节的定长
    十六进制(BCD码>1001加6):0000000008000000

    37域内容:131313132323333
    131313132323333
    格式:定长 类型:描述:定义在收单单位中定义一个服务终端的标识码

    二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000
    十六进制(BCD码>1001加6):0000000000800000
    41域内容: 格式:定长 类型:描述:在本地和网络中定义交易单位(商户)的编码
    二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000
    十六进制(BCD码>1001加6):0000000000400000
    41域内容:82102453132333435363738
    3132333435363738


    格式:变长, 类型:最大描述:该域用于处理数据

    二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000
    十六进制(BCD码>1001加6):0000000000040000
    46域内容:0000#trans_type#99,按规范转为:0006000000023939
    格式:定长 类型:8个字节的定长二进制数
    描述:用户在服务终端上交易用于识别用户合法性的一些数字
    二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000
    十六进制(BCD码>1001加6):0000000000001000
    52域内容:5EF0F6C66C3ED34E,按规范转为:5EF0F6C66C3ED34E
    5EF0F6C66C3ED34E


    格式:变长, 类型:128个字节的描述:本域为

    十六进制(BCD码>1001加6):0000000000000200

    52域内容:

    十六进制(BCD码>1001加6):0000000000000008
    61域内容:  000001001,按规范转换为:0009303030303031303031

    计算报文长度:0038 组装8583报文:003860001000000100008000000000000000080009303030303031303031

    转载请注明出处
    http://blog.csdn.net/pony_maggie/article/details/6568192 作者:小马

  • 相关阅读:
    String类的substring方法
    postman绕过登录,进行接口测试的方法
    Dubbo
    那些吊炸天的互联网名词
    版本控制工具git
    Ubunto20.04 sudo apt-get update 出现目标被重置多次!
    ubuntu环境下搭建Hadoop集群中必须需要注意的问题
    Python作业---内置数据类型
    python作业完成简单的文件操作
    python3实现计算器
  • 原文地址:https://www.cnblogs.com/yiyi16801/p/7424204.html
Copyright © 2011-2022 走看看