2015-10-21 13 views
0

Ive пытается создать pa-файл iso8583 с заменой библиотеки j8583 и старой программой iso8583, которую мы запускаем (у меня нет исходного кода). Пакет сгенерировал его, отличный от пакета, сгенерированного старым программным обеспечением. обратите внимание на «f» в старом пакете.Пакет iso8583 message

код

messageFactory.setAssignDate(false); 

messageFactory.setUseBinaryMessages(true); 

IsoMessage isoMessage = messageFactory.newMessage(0x1804); 
isoMessage.setBinary(true); 
isoMessage.setBinaryBitmap(true); 
isoMessage.setValue(3, "000000", IsoType.NUMERIC, 6); 
isoMessage.setValue(11, "000001", IsoType.NUMERIC, 6); 
isoMessage.setValue(12, "151021095555", IsoType.NUMERIC, 12); 
isoMessage.setValue(24, "831", IsoType.NUMERIC, 3); 
isoMessage.setValue(25, "8700", IsoType.NUMERIC, 4); 
isoMessage.write(outputStream, 2); 

Старый пакет

0x0000: 0a13 ad7c d6d0 0a2f 6a3b 8f1e 0800 4500 ...|.../j;....E. 
0x0010: 0055 73ae 4000 4006 41de 0a00 0888 94ab [email protected]@.A....... 
0x0020: dde3 b88b 540c c290 a52c 976a 3432 5018 ....T....,.j42P. 
0x0030: 01c9 855e 0000 002d f1f8 f0f4 2030 0180 ...^...-.....0.. 
0x0040: 0000 0000 f0f0 f0f0 f0f0 f1f5 f3f0 f2f9 ................ 
0x0050: f1f5 f1f0 f2f0 f2f1 f1f1 f3f1 f8f3 f1f8 ................ 
0x0060: f7f0 f0 

новый пакет

0x0000: 0a13 ad7c d6d0 0a2f 6a3b 8f1e 0800 4500 ...|.../j;....E. 
0x0010: 0042 39a7 4000 4006 7bf8 0a00 0888 94ab [email protected]@.{....... 
0x0020: dde3 bcce 540c b124 15aa 1a6e e56b 5018 ....T..$...n.kP. 
0x0030: 01c9 854b 0000 1804 2030 0180 0000 0000 ...K.....0...... 
0x0040: 0000 0000 0001 1510 2109 5555 0831 8700 ........!.UU.1.. 
+0

Я думаю, что вам не хватает еще каких-либо вызовов 'setXXX()', чтобы сделать заводские настройки правильными. –

ответ

2

1) В старом примере пакета данных вы можете увидеть байты с 'F'. Очевидно, что кодирование данных в формате EBCDIC.

2) В новой упаковке поля BCD упакованы - числовые поля используют половину байта на цифру.

Для образца из ваших двоичных данных:

  • Старого 0x "f1f8 f0f4 "- MTI кодируется как EBCDIC
  • Нового 0x" 1804" - MTI кодируется как BCD

Изменения Вы полей (если ваш java lib поддерживает эту опцию).