----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消息分解如您所见,当我们同时激活(启用) 49个字段和52个字段时,从51到56的字段处于活动状态,然后使用jpos位图出错( 01110010 00111010 01000001 00010001 10101000 11100000 00111111 00000000
发布于 2019-10-04 20:42:18
@user3621756:
从上面的代码中,我推断您的字段值是错误的,ISO字段位图表示为字段2的IFA_LLNUM (PAN)将为16|9991000501589186。
16是字段长度,而不是数据本身和so字段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 位图是由ISOMsg类在你调用.pack()方法时生成的,但是你也可以通过.unpack来反转,最后打包应该会给你正确的位图消息,解包应该会给你正确的字段值。
如果您的位图不正确,您将在解包时收到错误。
https://stackoverflow.com/questions/44646763
复制相似问题