2015-01-03 38 views
1

我想在java中使用jpos構建一個模擬器。 但是,我能夠將值發送到我的交換機,但根據交換機供應商,他們沒有在tcpip級別收到適當的值,因爲轉換失敗。ISO 8583信息 - 位圖不使用jpos在交換機端解析

在發送套接字流之前發送數據期間,請在我的末尾找到下面生成的日誌。

請求發送到服務器

清除字符串:

0200723A4401A8E19008166070658525235400011000000000150000020110150412345 
61300000201020160119010680019206900000376070658525235400=24075203640000000000 
428313349275RGB12345RGB12345  NPCI R-TECH GOREGAON(E)MUMBAI  MHIN 
022051005ATM010580050099935698BC03BEBAD073D9021121412220033000400085 

信息長度:291

發送十六進制轉儲:

0000 30 32 30 30 37 32 33 41 34 34 30 31 41 38 45 31  0200723A4401A8E1 
0010 39 30 30 38 31 36 36 30 37 30 36 35 38 35 32 35  9008166070658525 
0020 32 33 35 34 30 30 30 31 31 30 30 30 30 30 30 30  2354000110000000 
0030 30 30 31 35 30 30 30 30 30 32 30 31 31 30 31 35  0015000002011015 
0040 30 34 31 32 33 34 35 36 31 33 30 30 30 30 30 32  0412345613000002 
0050 30 31 30 32 30 31 36 30 31 31 39 30 31 30 36 38  0102016011901068 
0060 30 30 31 39 32 30 36 39 30 30 30 30 30 33 37 36  0019206900000376 
0070 30 37 30 36 35 38 35 32 35 32 33 35 34 30 30 3D  070658525235400= 
0080 32 34 30 37 35 32 30 33 36 34 30 30 30 30 30 30  2407520364000000 
0090 30 30 30 30 34 32 38 33 31 33 33 34 39 32 37 35  0000428313349275 
00a0 52 47 42 31 32 33 34 35 52 47 42 31 32 33 34 35  RGB12345RGB12345 
00b0 20 20 20 20 20 20 20 4E 50 43 49 20 52 2D 54 45    NPCI R-TE 
00c0 43 48 20 47 4F 52 45 47 41 4F 4E 28 45 29 4D 55  CH GOREGAON(E)MU 
00d0 4D 42 41 49 20 20 20 20 20 20 20 4D 48 49 4E 30  MBAI  MHIN0 
00e0 32 32 30 35 31 30 30 35 41 54 4D 30 31 30 35 38  22051005ATM01058 
00f0 30 30 35 30 30 39 39 39 33 35 36 39 38 42 43 30  0050099935698BC0 
0100 33 42 45 42 41 44 30 37 33 44 39 30 32 31 31 32  3BEBAD073D902112 
0110 31 34 31 32 32 32 30 30 33 33 30 30 30 34 30 30  1412220033000400 
0120 30 38 35            085 

按他們應我的交換機供應商在prop中接收位圖的值呃序列,而不是一個十六進制值。

請查看我的交換機供應商給出的以下樣本行。

0000 30 32 30 30 72 3A 44 01 A8 E1 0200r:D¨á  <-- 

任何人都可以協助這方面的問題。

請找我下面的代碼:

GenericPackager packager = new GenericPackager("basic.xml"); 

// Create ISO Message 
ISOMsg isoMsg = new ISOMsg(); 
isoMsg.setPackager(packager); 
isoMsg.setMTI("0200"); 
isoMsg.set(2, "6070658525235400"); 
isoMsg.set(3, "11000"); 
isoMsg.set(4, "000000150000"); 
isoMsg.set(7, "0201101504"); 
isoMsg.set(11, "123456"); 
isoMsg.set(12, "130000"); 
isoMsg.set(13, "0201"); 
isoMsg.set(15, "0201"); 
isoMsg.set(18, "6011");     
isoMsg.set(22, "901"); 
// isoMsg.set(25, "00"); 
isoMsg.set(32, "800192"); 
isoMsg.set(33, "900000"); 
isoMsg.set(35, "6070658525235400=24075203640000000000"); 
isoMsg.set(37, "428313349275"); 
isoMsg.set(41 , "RGB12345"); 
isoMsg.set(42 , "RGB12345  "); 
isoMsg.set(43 , "NPCI R-TECH GOREGAON(E)MUMBAI  MHIN"); 
isoMsg.set(48 , "051005ATM0105800500999"); 
isoMsg.set(49 , "356"); 
isoMsg.set(52 , "98BC03BEBAD073D9"); 
isoMsg.set(61 , "121412220033000400085"); 

// print the DE list 
logISOMsg(isoMsg); 
byte[] send_PackedRequestData = isoMsg.pack(); 
: 
: 
outStream = new BufferedOutputStream(connection.getOutputStream()); 
outStream.write(send_PackedRequestData); 
outStream.flush(); 

回答

0

這個問題是有缺陷的,這是不可能的幫助,如果不去學習規格。

另外,我希望你在那裏展示的卡片有測試卡片,否則請通知發行者封鎖它。這就是說,你可能使用的是IFA_BITMAP而不是IFB_BITMAP,但是這種改變只會解決你的位圖生成問題,你可能有很多其他的字段配置不當。