银联8583报文示例

    xiaoxiao2021-03-25  127

     

    签到请求报文示例:

     

    解压前hex格式:

    003C404040404008200020000000C1000038403458593030303030313330383031

    3037393939393939393700173330303630303030303034303033303031  

     

    解压前byte格式:

    真正传输过程中需要转成byte格式,一般用socket进行传输

    0 60 64 64 64 64 64 8 32 0 32 0 0 0 -63 0 0 48 18 57 88 89 48 48 48 48 48 49 51 48 56 48 49 48 55 57 57 57 57 57 57 57 55 0 23 51 48 48 54 48 48 55 49 51 56 52 48 48 51 48 48 49 

     

    hex格式转byte格式的方法是取两个字符的hex格式数字,将其转成byte类型的十进制

     

     

    解压后:

    这个解压结果是整理后的结果,其实就是将hex格式的长字符串整理出了每个域的值

    TPDU:4040404040 TYPE:0820 BITMAP:0020000000C10000 DE11:384034 DE41:5859303030303031 DE42:333038303130373939393939393937 DE48:0017 3330 3036 303030303030                          3430 3033 303031 

     

    每个域分析:

     

    长度:003C

        长度==总位数除以2,再转成十六进制表示  

        例如 :一共120位  length=120/2=60,60转换成十六进制==3C

     

    TPDU:4040404040 

        TPDU是10位长度

    HEAD:此例中不包含HEAD,如包含HEAD则应该出现在此位置,且长度为12位

     

    TYPE:0820

       报文类型,0820是代表签到请求                                        

     

    BITMAP  : 0020 0000 00C1 0000 

        将每一个数字用四位的二进制表示 得出如下:

                0000 0000 0010 0000 

                0000 0000 0000 0000 

                0000 0000 1100 0001 

                0000 0000 0000 0000   

         得出第 11 41 42 48域里面有值,然后根据文档中每个域的介绍分别取值                                                                     DE11    :384034

                DE11 是BCD类型的,所以直接是十进制表示的                                                       

    DE41    :5859303030303031      

                    41域是ASCII类型的,所以转换成十进制是 XY000001

                                              

    DE42    :  333038303130373939393939393937   

                     42域是ASCII类型的,所以转换成十进制是 308010799999997    

     

     

    DE48       :0017 3330 3036 303030303030                              3430 3033 303031                                                         

                      48域是ASCII类型的,所以转换成十进制是 

                       30 06 000000

                       30 03 001

                       其中,30表示48域下的tag30,06表示此tag的长度,后面的是值

     

    注意:

    如果,交易状态描述是直接在域中返回的中文,那么在得到输入的字节流之后,不要做任何处理,直接将相应的字节流转成中文,否则会出现乱码

    一般情况下64域mac密钥和35域加密磁道信息密钥是在签到的时候获取的,获取到的时候是密文的密钥,主密钥是用于解密这两个密钥的

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-9374.html

    最新回复(0)