0
----ISO MESSAGE-----
  MTI : 0200
    Field-2 : 169991000501589186
    Field-3 : 301000
    Field-4 : 000001000000
    Field-7 : 0620104505
    Field-11 : 177
    Field-12 : 104505
    Field-13 : 0620
    Field-15 : 1115
    Field-18 : 0000
    Field-24 : 001
    Field-28 : 00000000
    Field-32 : 1158943000
    Field-33 : 06000001
    Field-35 : 279991000501589186=0903121550
    Field-37 : 082400096515
    Field-41 : 0540
    Field-42 : 000540
    Field-43 : kkk
    Field-49 : 586
    Field-52 : 12345678

这是此二进制系列的 iso 消息细分,因为您看到此二进制文件 01110010 00111010 01000001 00010001 10101000 11100000 00111111 00000000 当我们同时激活(启用)49 字段和 52 字段时,从 51 到 56 的字段处于活动状态,然后使用 jpos 位图出错

4

1 回答 1

0

@用户3621756:

从您上面的代码中,我推断您将字段值错误,ISO 字段位图表示为 IFA_LLNUM 字段 2 (PAN) 将是 16|9991000501589186.

16 是字段长度而不是数据本身,因此字段 35(卡的磁道 2 数据)。

保留了管道以区分长度和字段值

MTI : 0200
    Field-2 : 169991000501589186
    Field-3 : 301000
    Field-4 : 000001000000
    Field-7 : 0620104505
    Field-11 : 177
    Field-12 : 104505
    Field-13 : 0620
    Field-15 : 1115
    Field-18 : 0000
    Field-24 : 001
    Field-28 : 00000000
    Field-32 : 1158943000
    Field-33 : 06000001
    Field-35 : 279991000501589186=0903121550
    Field-37 : 082400096515
    Field-41 : 0540
    Field-42 : 000540
    Field-43 : kkk
    Field-49 : 586
    Field-52 : 12345678 

当您调用方法 .pack() 时,位图由 ISOMsg 类生成,但您也可以通过 .unpack 进行反向操作,最后 pack 应该为您提供正确的位图消息,并且 unpack 应该为您提供正确的字段值。

如果您的位图不正确,您将在解包时收到错误消息。

于 2019-10-04T12:42:17.957 回答