|
View:
New views
16 Messages
—
Rating Filter:
Alert me
|
|
|
Nested field 0I have a a particular ISO implementation that requires field 0 to be
a nested field: IS O Da ta Ele m en t # N a m e A ttrib ute s 0 Message Header 0.1 Message Identifier n-15 0.2 Message Version n-3 0.3 Field inError n-3 0.4 Message Receiving Time n-14 0.5 Message Type Identifier n-4 0.6 Bitmap, Primary b-64 1 Bitmap, Secondary b-64 I implemented this field as required but got the following error in Q2: <send> <isomsg direction="outgoing"> <isomsg id="0"> <field id="0" value="RENDEZVOUS-8583"/> <field id="1" value="1.0"/> <field id="2" value="000"/> <field id="3" value="12345678901234"/> <field id="4" value="0800"/> </isomsg> <field id="7" value="1115032036"/> <field id="11" value="162036"/> <field id="12" value="162036"/> <field id="13" value="1115"/> <field id="70" value="270"/> </isomsg> <iso-exception> org.jpos.iso.IF_CHAR: Problem packing field -1 <nested-exception> java.lang.ClassCastException: java.util.BitSet cannot be cast to java.lang.String at org.jpos.iso.ISOStringFieldPackager.pack (ISOStringFieldPackager.java:168) at org.jpos.iso.packager.GenericSubFieldPackager.pack (GenericSubFieldPackager.java:155) at org.jpos.iso.ISOMsgFieldPackager.pack (ISOMsgFieldPackager.java:88) at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:142) at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) at org.jpos.q2.iso.ChannelAdaptor$Sender.run (ChannelAdaptor.java:248) at java.lang.Thread.run(Unknown Source) </nested-exception> I also got the following error from within my IDE: <log realm="test-channel/192.168.100.201:2180" at="Sat Nov 15 16:09:57 WAT 2008.637"> <send> <isomsg direction="outgoing"> <isomsg id="0"> <field id="0" value="RENDEZVOUS-8583"/> <field id="2" value="1.0"/> <field id="3" value="000"/> <field id="4" value="12345678901234"/> <field id="5" value="0800"/> <field id="6" value="000000010001000000000000000000000000000000000000000000000000000 0"/> </isomsg> <field id="7" value="1016101324"/> <field id="11" value="1"/> <field id="70" value="101"/> </isomsg> <iso-exception> org.jpos.iso.IFA_NUMERIC: Problem packing field 0 <nested-exception> java.lang.ClassCastException: org.jpos.iso.ISOMsg cannot be cast to java.lang.String at org.jpos.iso.ISOStringFieldPackager.pack (ISOStringFieldPackager.java:168) at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:117) at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) at org.jpos.simulator.Test.main(Test.java:70) </nested-exception> org.jpos.iso.ISOException: org.jpos.iso.IFA_NUMERIC: Problem packing field 0 (java.lang.ClassCastException: org.jpos.iso.ISOMsg cannot be cast to java.lang.String) at org.jpos.iso.ISOStringFieldPackager.pack (ISOStringFieldPackager.java:181) at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:117) at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) at org.jpos.simulator.Test.main(Test.java:70) Nested:java.lang.ClassCastException: org.jpos.iso.ISOMsg cannot be cast to java.lang.String at org.jpos.iso.ISOStringFieldPackager.pack (ISOStringFieldPackager.java:168) at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:117) at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) at org.jpos.simulator.Test.main(Test.java:70) </iso-exception> </send> </log>Exception in thread "main" org.jpos.iso.ISOException: org.jpos.iso.IFA_NUMERIC: Problem packing field 0 (java.lang.ClassCastException: org.jpos.iso.ISOMsg cannot be cast to java.lang.String) at org.jpos.iso.ISOStringFieldPackager.pack (ISOStringFieldPackager.java:181) at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:117) at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) at org.jpos.simulator.Test.main(Test.java:70) Nested:java.lang.ClassCastException: org.jpos.iso.ISOMsg cannot be cast to java.lang.String at org.jpos.iso.ISOStringFieldPackager.pack (ISOStringFieldPackager.java:168) at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:117) at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) at org.jpos.simulator.Test.main(Test.java:70) Kindly asssit as I cant seem to figure it out. Thank you. |
|
|
Re: Nested field 0Sample dump from the simulator attached to the EFT platform for this
implementation. [0] 52 45 4E 44 45 5A 56 4F 55 53 2D 38 35 38 33 31 RENDEZVOUS- 85831 [16] 2E 30 30 30 30 31 32 33 34 35 36 37 38 39 30 31 .000012345678901 [32] 32 33 34 30 38 30 30 82 20 00 00 00 00 00 00 04 2340800. ....... [48] 00 00 00 00 00 00 00 30 35 30 36 30 33 32 32 31 .......050603221 [64] 36 32 39 36 32 33 38 30 36 36 6296238066 INFO 2008-11-15 09:42:49,578 : >>Input Bitmaps As strings of 1s and 0s>> 1000001000100000 0000000000000000 0000000000000000 0000000000000000 0000010000000000 0000000000000000 0000000000000000 0000000000000000 INFO 2008-11-15 09:42:49,578 : Field 7: 0506032216 INFO 2008-11-15 09:42:49,578 : Field 11: 296238 INFO 2008-11-15 09:42:49,578 : Field 70: 066 INFO 2008-11-15 09:42:49,578 : >>>>>Full TranCode: 080000 --- In jpos-dev@..., "super_foly" <super_foly@...> wrote: > > I have a a particular ISO implementation that requires field 0 to be > a nested field: > > IS O Da ta Ele m en t # N a m e A ttrib ute s > 0 Message Header > 0.1 Message Identifier n-15 > 0.2 Message Version n-3 > 0.3 Field inError n-3 > 0.4 Message Receiving Time n-14 > 0.5 Message Type Identifier n-4 > 0.6 Bitmap, Primary b-64 > 1 Bitmap, Secondary b-64 > > I implemented this field as required but got the following error in > Q2: > <send> > <isomsg direction="outgoing"> > <isomsg id="0"> > <field id="0" value="RENDEZVOUS-8583"/> > <field id="1" value="1.0"/> > <field id="2" value="000"/> > <field id="3" value="12345678901234"/> > <field id="4" value="0800"/> > </isomsg> > <field id="7" value="1115032036"/> > <field id="11" value="162036"/> > <field id="12" value="162036"/> > <field id="13" value="1115"/> > <field id="70" value="270"/> > </isomsg> > <iso-exception> > org.jpos.iso.IF_CHAR: Problem packing field -1 > <nested-exception> > java.lang.ClassCastException: java.util.BitSet cannot be cast > to java.lang.String > at org.jpos.iso.ISOStringFieldPackager.pack > (ISOStringFieldPackager.java:168) > at org.jpos.iso.packager.GenericSubFieldPackager.pack > (GenericSubFieldPackager.java:155) > at org.jpos.iso.ISOMsgFieldPackager.pack > (ISOMsgFieldPackager.java:88) > at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:142) > at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) > at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) > at org.jpos.q2.iso.ChannelAdaptor$Sender.run > (ChannelAdaptor.java:248) > at java.lang.Thread.run(Unknown Source) > </nested-exception> > > I also got the following error from within my IDE: > <log realm="test-channel/192.168.100.201:2180" at="Sat Nov 15 > 16:09:57 WAT 2008.637"> > <send> > <isomsg direction="outgoing"> > <isomsg id="0"> > <field id="0" value="RENDEZVOUS-8583"/> > <field id="2" value="1.0"/> > <field id="3" value="000"/> > <field id="4" value="12345678901234"/> > <field id="5" value="0800"/> > <field id="6" > > 0"/> > </isomsg> > <field id="7" value="1016101324"/> > <field id="11" value="1"/> > <field id="70" value="101"/> > </isomsg> > <iso-exception> > org.jpos.iso.IFA_NUMERIC: Problem packing field 0 > <nested-exception> > java.lang.ClassCastException: org.jpos.iso.ISOMsg cannot be > cast to java.lang.String > at org.jpos.iso.ISOStringFieldPackager.pack > (ISOStringFieldPackager.java:168) > at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:117) > at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) > at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) > at org.jpos.simulator.Test.main(Test.java:70) > </nested-exception> > org.jpos.iso.ISOException: org.jpos.iso.IFA_NUMERIC: Problem > packing field 0 (java.lang.ClassCastException: org.jpos.iso.ISOMsg > cannot be cast to java.lang.String) > at org.jpos.iso.ISOStringFieldPackager.pack > (ISOStringFieldPackager.java:181) > at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:117) > at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) > at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) > at org.jpos.simulator.Test.main(Test.java:70) > Nested:java.lang.ClassCastException: org.jpos.iso.ISOMsg cannot be > cast to java.lang.String > at org.jpos.iso.ISOStringFieldPackager.pack > (ISOStringFieldPackager.java:168) > at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:117) > at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) > at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) > at org.jpos.simulator.Test.main(Test.java:70) > </iso-exception> > </send> > </log>Exception in thread "main" org.jpos.iso.ISOException: > org.jpos.iso.IFA_NUMERIC: Problem packing field 0 > (java.lang.ClassCastException: org.jpos.iso.ISOMsg cannot be cast > java.lang.String) > at org.jpos.iso.ISOStringFieldPackager.pack > (ISOStringFieldPackager.java:181) > at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:117) > at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) > at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) > at org.jpos.simulator.Test.main(Test.java:70) > > Nested:java.lang.ClassCastException: org.jpos.iso.ISOMsg cannot be > cast to java.lang.String > at org.jpos.iso.ISOStringFieldPackager.pack > (ISOStringFieldPackager.java:168) > at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:117) > at org.jpos.iso.ISOMsg.pack(ISOMsg.java:311) > at org.jpos.iso.BaseChannel.send(BaseChannel.java:437) > at org.jpos.simulator.Test.main(Test.java:70) > > Kindly asssit as I cant seem to figure it out. > > Thank you. > |
|
|
Re: Nested field 0Are you sure you want to handle this as field 0?
It looks to me that you could handle this as a channel level header. |
|
|
Re: Nested field 0Hi Len,
you are write it looks like a header. however the EFT platform owner insisted its meant to be field 0. I am now able to send the message across to the platform; however the dump for my echo is different from the expected value. Expected: ********* [0] 52 45 4E 44 45 5A 56 4F 55 53 2D 38 35 38 33 31 RENDEZVOUS-85831 [16] 2E 30 30 30 30 31 32 33 34 35 36 37 38 39 30 31 .000012345678901 [32] 32 33 34 30 38 30 30 82 20 00 00 00 00 00 00 04 2340800. ....... [48] 00 00 00 00 00 00 00 30 35 30 36 30 33 32 32 31 .......050603221 [64] 36 32 39 36 32 33 38 30 36 36 6296238066 INFO 2008-11-15 09:42:49,578 : >>Input Bitmaps As strings of 1s and 0s>> 1000001000100000 0000000000000000 0000000000000000 0000000000000000 0000010000000000 0000000000000000 0000000000000000 0000000000000000 INFO 2008-11-15 09:42:49,578 : Field 7: 0506032216 INFO 2008-11-15 09:42:49,578 : Field 11: 296238 INFO 2008-11-15 09:42:49,578 : Field 70: 066 INFO 2008-11-15 09:42:49,578 : >>>>>Full TranCode: 080000 My Implementation: ******************** <log realm="test-channel/192.168.100.201:2180" at="Sat Nov 15 18:57:54 WAT 2008.14"> <send> <isomsg direction="outgoing"> <isomsg id="0"> <field id="0" value="RENDEZVOUS-8583"/> <field id="1" value="1.0"/> <field id="2" value="000"/> <field id="3" value="12345678901234"/> <field id="4" value="0800"/> <field id="5" value="0000000100000000000000000000000000000000000000000000000000000000"/> </isomsg> <field id="7" value="1016101324"/> <field id="11" value="162036"/> <field id="70" value="270"/> </isomsg> </send> </log> Dump: [0] 82 20 00 00 00 00 00 00 04 00 00 00 00 00 00 00 . .............. [16] 01 03 52 45 4E 44 45 5A 56 4F 55 53 2D 38 35 38 ..RENDEZVOUS-858 [32] 33 31 2E 30 30 30 30 31 32 33 34 35 36 37 38 39 31.0000123456789 [48] 30 31 32 33 34 30 38 30 30 30 30 30 30 30 30 30 0123408000000000 [64] 31 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 1000000000000000 [80] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0000000000000000 [96] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0000000000000000 [112] 30 30 30 30 30 30 30 30 30 31 30 31 36 31 30 31 0000000001016101 [128] 33 32 34 31 36 32 30 33 36 32 37 30 324162036270 I need to get the bitmap to conform to the expected dump. Thank you. --- In jpos-dev@..., Alejandro Revilla <apr@...> wrote: > > Are you sure you want to handle this as field 0? > > It looks to me that you could handle this as a channel level header. > |
|
|
Re: Re: Nested field 0super_foly wrote:
> Hi Len, > you are write it looks like a header. however the EFT platform > owner insisted its meant to be field 0. Does the numbering convention matter? As long as the message arrives properly structured on the EFT interface, all will be well. Is there a good reason - perhaps a report - that means the "composite header field" needs to be treated as an entity? > > I am now able to send the message across to the platform But not using a header as Alejandro suggested, I think you are using jPos *not* as intended and getting rather odd results... > > Expected: > ********* > [32] 32 33 34 30 38 30 30 82 20 00 00 00 00 00 00 04 2340800. ....... > [48] 00 00 00 00 00 00 00 30 35 30 36 30 33 32 32 31 .......050603221 > > > My Implementation: > ******************** > [0] 82 20 00 00 00 00 00 00 04 00 00 00 00 00 00 00 . .............. This seems to be an additional header, is this intentional? > [16] 01 03 52 45 4E 44 45 5A 56 4F 55 53 2D 38 35 38 ..RENDEZVOUS-858 > > [32] 33 31 2E 30 30 30 30 31 32 33 34 35 36 37 38 39 31.0000123456789 > > [48] 30 31 32 33 34 30 38 30 30 30 30 30 30 30 30 30 0123408000000000 > > [64] 31 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 1000000000000000 > > [80] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0000000000000000 > > [96] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0000000000000000 > > [112] 30 30 30 30 30 30 30 30 30 31 30 31 36 31 30 31 0000000001016101 > > [128] 33 32 34 31 36 32 30 33 36 32 37 30 324162036270 It seems you are using an ASCII bitmap, where a binary one is required. The original extract shows :- 0.6 Bitmap, Primary b-64 1 Bitmap, Secondary b-64 I would think this means Binary 64 bits (8 bytes). You have not shown your packager definition of fields 0.6 (primary bitmap) and 1 (secondary bitmap). The bitmap in the request is fine, but yours looks odd (even given it is ASCII and not binary), probably because you are attempting something not intended to be supported by jPos as it stands (a composite field 0 - which would normally by the message MTI). Your echo is also not an 0810 message, I would guess the EFT owner is addressing the biggest issues with your message first - the message being way too large as your bitmap is taking up twice the expected number of bits. > > I need to get the bitmap to conform to the expected dump. Make sure you are using a binary field, and if you can share your packager that might help us see what other problems you might be causing. My suggestion - I agree with Alejandro completely - is to use a header for everything upto and include field 0.4, then use jPos as it's design intends for everything else (remember to correct your bitmap definition (to a binary form)). The EFT interface will never know you are placing their header filed in a jpos header (rather than field 0) and they can interpret it however they like (and so can you). To use jPos in this manner will need some code changes (not lease qualifying the position of the MTI and associated processing (isRequest etc), but also the handling of the bitmap which seems to also have been affected by your approach. -- Mark |
|
|
Re: Nested field 0Hi Mark/Alen,
Thanks for your response. I now send the header as you suggested within a channel I developed. An extract of the channel is below: public class EswitchPostChannel extends BaseChannel { /** * Public constructor (used by Class.forName("...").newInstance()) */ protected Logger logger = null; protected String realm = "EswitchLogger"; protected String originalRealm = null; protected String header = "RENDEZVOUS- 85831.000012345678901234"; BufferedReader reader = null; public EswitchPostChannel () { super(); } /** * Construct client ISOChannel * @param host server TCP Address * @param port server port number * @param p an ISOPackager * @see ISOPackager */ public EswitchPostChannel (String host, int port, ISOPackager p) { super(host, port, p); } /** * Construct server ISOChannel * @param p an ISOPackager * @exception IOException * @see ISOPackager */ public EswitchPostChannel (ISOPackager p) throws IOException { super(p); } /** * constructs a server ISOChannel associated with a Server Socket * @param p an ISOPackager * @param serverSocket where to accept a connection * @exception IOException * @see ISOPackager */ public EswitchPostChannel (ISOPackager p, ServerSocket serverSocket) throws IOException { super(p, serverSocket); } protected void sendMessageLength(int len) throws IOException { serverOut.write (len >> 8); serverOut.write (len); } protected int getMessageLength() throws IOException, ISOException { return -1; } protected void sendMessageHeader(ISOMsg m, int len) throws IOException { try { BitSet bset = (BitSet) m.getValue(-1); String strRawBmap = "1000001000100000000000000000000000000000000000000000000000000000"; ///ISOUtil.byte2BitSet(bmap, strRawBmap.getBytes(), 64); header = header + m.getMTI() + ISOUtil.bitSet2String(bset.get(0, 64)); System.out.print("HEADER >>>>>>" + header); serverOut.write(header.getBytes()); } catch (ISOException e) { System.out.print(e.getMessage()); } } /** * * @param header Hex representation of header */ public void setHeader (String header) { super.setHeader ( ISOUtil.hex2byte (header.getBytes(), 0, header.length()) ); } } The EFT platform receives my message but I seem to have a problem with 0.6 which expects b-64. I retreive the primary bitmap and noticed that its sent in ASCII format to the platform. However, it expects binary data which I have not been able to acheive in getting across to this platform. This is the dump from the platform of the test I carried out: [0] 52 45 4E 44 45 5A 56 4F 55 53 2D 38 35 38 33 31 RENDEZVOUS- 85831 [16] 2E 30 30 30 30 31 32 33 34 35 36 37 38 39 30 31 .000012345678901 [32] 32 33 34 30 38 30 30 2340800 INFO 2008-11-18 20:17:12,927 : >>Input Bitmaps As strings of 1s and 0s>> 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 INFO 2008-11-18 20:17:12,937 : >>>>>Full TranCode: 080000 >>>>>2008-11-18 8:17:12:938 : 0800 00 POS Purchase - Received java.lang.StringIndexOutOfBoundsException: String index out of range: 4 at java.lang.String.substring(Unknown Source) at com.neptunesoftware.gateway.host.XAPIPostilionInterface.SetGWayValue( XAPIPostilionInterface.java:42) Please how do I pack up the BitSet in binary format as part of my header to ensure the outcome is as below: [0] 52 45 4E 44 45 5A 56 4F 55 53 2D 38 35 38 33 31 RENDEZVOUS- 8583 [16] 2E 30 30 30 30 31 32 33 34 35 36 37 38 39 30 31 .00001234567890 [32] 32 33 34 30 38 30 30 82 20 00 00 00 00 00 00 04 2340800. ...... [48] 00 00 00 00 00 00 00 30 35 30 36 30 33 32 32 31 .......05060322 [64] 36 32 39 36 35 36 37 30 36 36 6296567066 INFO 2008-11-15 19:03:49,296 : >>Input Bitmaps As strings of 1s and 0s>> 1000001000100000 0000000000000000 0000000000000000 0000000000000000 0000010000000000 0000000000000000 0000000000000000 0000000000000000 My Packager is given below: public class EswitchPackager extends ISOBasePackager implements LogSource { protected Logger logger = null; protected String realm = "EswitchLogger"; protected String originalRealm = null; protected ISOFieldPackager fld[] = { /*000*/new IFA_NUMERIC ( 4, "MESSAGE IDENTIFIER"), /*001*/new IFB_BITMAP ( 8, "BIT MAP"), /*002*/new IFA_LLNUM ( 19, "PAN - PRIMARY ACCOUNT NUMBER"), /*003*/new IFA_NUMERIC ( 6, "PROCESSING CODE"), /*004*/new IFA_NUMERIC ( 12, "AMOUNT, TRANSACTION"), /*005*/new IFA_NUMERIC ( 12, "AMOUNT, SETTLEMENT"), /*006*/new IFA_NUMERIC ( 12, "AMOUNT, CARDHOLDER BILLING"), /*007*/new IFA_NUMERIC ( 10, "TRANSMISSION DATE AND TIME"), new IFA_NUMERIC ( 8, "AMOUNT, CARDHOLDER BILLING FEE"), new IFA_NUMERIC ( 8, "CONVERSION RATE, SETTLEMENT"), new IFA_NUMERIC ( 8, "CONVERSION RATE, CARDHOLDER BILLING"), new IFA_NUMERIC ( 6, "SYSTEM TRACE AUDIT NUMBER"), new IFA_NUMERIC ( 6, "TIME, LOCAL TRANSACTION"), new IFA_NUMERIC ( 4, "DATE, LOCAL TRANSACTION"), new IFA_NUMERIC ( 4, "DATE, EXPIRATION"), new IFA_NUMERIC ( 4, "DATE, SETTLEMENT"), new IFA_NUMERIC ( 4, "DATE, CONVERSION"), new IFA_NUMERIC ( 4, "DATE, CAPTURE"), new IFA_NUMERIC ( 4, "MERCHANTS TYPE"), new IFA_NUMERIC ( 3, "ACQUIRING INSTITUTION COUNTRY CODE"), new IFA_NUMERIC ( 3, "PAN EXTENDED COUNTRY CODE"), new IFA_NUMERIC ( 3, "FORWARDING INSTITUTION COUNTRY CODE"), new IFA_NUMERIC ( 3, "POINT OF SERVICE ENTRY MODE"), new IFA_NUMERIC ( 3, "CARD SEQUENCE NUMBER"), new IFA_NUMERIC ( 3, "NETWORK INTERNATIONAL IDENTIFIEER"), new IFA_NUMERIC ( 2, "POINT OF SERVICE CONDITION CODE"), new IFA_NUMERIC ( 2, "POINT OF SERVICE PIN CAPTURE CODE"), new IFA_NUMERIC ( 1, "AUTHORIZATION IDENTIFICATION RESP LEN"), new IFA_AMOUNT ( 9, "AMOUNT, TRANSACTION FEE"), new IFA_AMOUNT ( 9, "AMOUNT, SETTLEMENT FEE"), new IFA_AMOUNT ( 9, "AMOUNT, TRANSACTION PROCESSING FEE"), new IFA_AMOUNT ( 9, "AMOUNT, SETTLEMENT PROCESSING FEE"), new IFA_LLNUM ( 11, "ACQUIRING INSTITUTION IDENT CODE"), new IFA_LLNUM ( 11, "FORWARDING INSTITUTION IDENT CODE"), new IFA_LLCHAR ( 28, "PAN EXTENDED"), new IFA_LLNUM ( 37, "TRACK 2 DATA"), new IFA_LLLCHAR (104, "TRACK 3 DATA"), new IF_CHAR ( 12, "RETRIEVAL REFERENCE NUMBER"), new IF_CHAR ( 6, "AUTHORIZATION IDENTIFICATION RESPONSE"), new IF_CHAR ( 2, "RESPONSE CODE"), new IF_CHAR ( 3, "SERVICE RESTRICTION CODE"), new IF_CHAR ( 8, "CARD ACCEPTOR TERMINAL IDENTIFICACION"), new IF_CHAR ( 15, "CARD ACCEPTOR IDENTIFICATION CODE" ), new IF_CHAR ( 40, "CARD ACCEPTOR NAME/LOCATION"), new IFA_LLCHAR ( 25, "ADITIONAL RESPONSE DATA"), new IFA_LLCHAR ( 76, "TRACK 1 DATA"), new IFA_LLLCHAR (999, "ADITIONAL DATA - ISO"), new IFA_LLLCHAR (999, "ADITIONAL DATA - NATIONAL"), new IFA_LLLCHAR (999, "ADITIONAL DATA - PRIVATE"), new IF_CHAR ( 3, "CURRENCY CODE, TRANSACTION"), new IF_CHAR ( 3, "CURRENCY CODE, SETTLEMENT"), new IF_CHAR ( 3, "CURRENCY CODE, CARDHOLDER BILLING" ), new IFA_BINARY ( 8, "PIN DATA" ), new IFA_NUMERIC ( 16, "SECURITY RELATED CONTROL INFORMATION"), new IFA_LLLCHAR (120, "ADDITIONAL AMOUNTS"), new IFA_LLLCHAR (999, "RESERVED ISO"), new IFA_LLLCHAR (999, "RESERVED ISO"), new IFA_LLLCHAR (999, "RESERVED NATIONAL"), new IFA_LLLCHAR (999, "RESERVED NATIONAL"), new IFA_LLLCHAR (999, "RESERVED NATIONAL"), new IFA_LLLCHAR (999, "RESERVED PRIVATE"), new IFA_LLLCHAR (999, "RESERVED PRIVATE"), new IFA_LLLCHAR (999, "RESERVED PRIVATE"), new IFA_LLLCHAR (999, "RESERVED PRIVATE"), new IFA_BINARY ( 8, "MESSAGE AUTHENTICATION CODE FIELD"), new IFA_BINARY ( 8, "BITMAP, EXTENDED"), new IFA_NUMERIC ( 1, "SETTLEMENT CODE"), new IFA_NUMERIC ( 2, "EXTENDED PAYMENT CODE"), new IFA_NUMERIC ( 3, "RECEIVING INSTITUTION COUNTRY CODE"), new IFA_NUMERIC ( 3, "SETTLEMENT INSTITUTION COUNTRY CODE"), new IFA_NUMERIC ( 3, "NETWORK MANAGEMENT INFORMATION CODE"), new IFA_NUMERIC ( 4, "MESSAGE NUMBER"), new IFA_NUMERIC ( 4, "MESSAGE NUMBER LAST"), new IFA_NUMERIC ( 6, "DATE ACTION"), new IFA_NUMERIC ( 10, "CREDITS NUMBER"), new IFA_NUMERIC ( 10, "CREDITS REVERSAL NUMBER"), new IFA_NUMERIC ( 10, "DEBITS NUMBER"), new IFA_NUMERIC ( 10, "DEBITS REVERSAL NUMBER"), new IFA_NUMERIC ( 10, "TRANSFER NUMBER"), new IFA_NUMERIC ( 10, "TRANSFER REVERSAL NUMBER"), new IFA_NUMERIC ( 10, "INQUIRIES NUMBER"), new IFA_NUMERIC ( 10, "AUTHORIZATION NUMBER"), new IFA_NUMERIC ( 12, "CREDITS, PROCESSING FEE AMOUNT"), new IFA_NUMERIC ( 12, "CREDITS, TRANSACTION FEE AMOUNT"), new IFA_NUMERIC ( 12, "DEBITS, PROCESSING FEE AMOUNT"), new IFA_NUMERIC ( 12, "DEBITS, TRANSACTION FEE AMOUNT"), new IFA_NUMERIC ( 16, "CREDITS, AMOUNT"), new IFA_NUMERIC ( 16, "CREDITS, REVERSAL AMOUNT"), new IFA_NUMERIC ( 16, "DEBITS, AMOUNT"), new IFA_NUMERIC ( 16, "DEBITS, REVERSAL AMOUNT"), new IFA_NUMERIC ( 42, "ORIGINAL DATA ELEMENTS"), new IF_CHAR ( 1, "FILE UPDATE CODE"), new IF_CHAR ( 2, "FILE SECURITY CODE"), new IF_CHAR ( 5, "RESPONSE INDICATOR"), new IF_CHAR ( 7, "SERVICE INDICATOR"), new IF_CHAR ( 42, "REPLACEMENT AMOUNTS"), new IFA_BINARY ( 8, "MESSAGE SECURITY CODE"), new IFA_AMOUNT ( 17, "AMOUNT, NET SETTLEMENT"), new IF_CHAR ( 25, "PAYEE"), new IFA_LLNUM ( 11, "SETTLEMENT INSTITUTION IDENT CODE"), new IFA_LLNUM ( 11, "RECEIVING INSTITUTION IDENT CODE"), new IFA_LLCHAR ( 17, "FILE NAME"), new IFA_LLCHAR ( 28, "ACCOUNT IDENTIFICATION 1"), new IFA_LLCHAR ( 28, "ACCOUNT IDENTIFICATION 2"), new IFA_LLLCHAR (100, "TRANSACTION DESCRIPTION"), new IFA_LLLCHAR (999, "RESERVED ISO USE"), new IFA_LLLCHAR (999, "RESERVED ISO USE"), new IFA_LLLCHAR (999, "RESERVED ISO USE"), new IFA_LLLCHAR (999, "RESERVED ISO USE"), new IFA_LLLCHAR (999, "RESERVED ISO USE"), new IFA_LLLCHAR (999, "RESERVED ISO USE"), new IFA_LLLCHAR (999, "RESERVED ISO USE"), new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), new IFA_LLLCHAR (999, "RESERVED NATIONAL USE" ), new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), new IFA_LLLCHAR (999, "RESERVED NATIONAL USE" ), new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), new IFA_LLLCHAR (50, "RESERVED PRIVATE USE"), new IFA_LLLCHAR (999, "MAC 2") }; public EswitchPackager() { super(); try { setFieldPackager(fld); } catch (Exception e) { Logger.log (new LogEvent (this, e.getMessage())); } } /* (non-Javadoc) * @see org.jpos.util.LogSource#setLogger (org.jpos.util.Logger, java.lang.String) */ public void setLogger (Logger logger, String realm) { this.logger = logger; this.realm = realm; if (originalRealm == null) originalRealm = realm; } /* (non-Javadoc) * @see org.jpos.util.LogSource#getRealm() */ public String getRealm () { return realm; } /* (non-Javadoc) * @see org.jpos.util.LogSource#getLogger() */ public Logger getLogger() { return logger; } public String getOriginalRealm() { return originalRealm == null ? this.getClass().getName() : originalRealm; } } --- In jpos-dev@..., Mark Salter <marksalter@...> wrote: > > super_foly wrote: > > Hi Len, > > you are write it looks like a header. however the EFT platform > > owner insisted its meant to be field 0. > Does the numbering convention matter? As long as the message arrives > properly structured on the EFT interface, all will be well. > > Is there a good reason - perhaps a report - that means the "composite > header field" needs to be treated as an entity? > > > > > I am now able to send the message across to the platform > But not using a header as Alejandro suggested, I think you are using > jPos *not* as intended and getting rather odd results... > > > > > Expected: > > ********* > > > [32] 32 33 34 30 38 30 30 82 20 00 00 00 00 00 00 04 > > [48] 00 00 00 00 00 00 00 30 35 30 36 30 33 32 32 31 .......050603221 > > > > > > My Implementation: > > ******************** > > [0] 82 20 00 00 00 00 00 00 04 00 00 00 00 00 00 00 . .............. > > This seems to be an additional header, is this intentional? > > > [16] 01 03 52 45 4E 44 45 5A 56 4F 55 53 2D 38 35 38 ..RENDEZVOUS-858 > > > > [32] 33 31 2E 30 30 30 30 31 32 33 34 35 36 37 38 39 31.0000123456789 > > > > [48] 30 31 32 33 34 30 38 30 30 30 30 30 30 30 30 30 0123408000000000 > > > > [64] 31 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 1000000000000000 > > > > [80] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0000000000000000 > > > > [96] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0000000000000000 > > > > [112] 30 30 30 30 30 30 30 30 30 31 30 31 36 31 30 31 0000000001016101 > > > > [128] 33 32 34 31 36 32 30 33 36 32 37 30 324162036270 > > It seems you are using an ASCII bitmap, where a binary one is required. > > The original extract shows :- > > 0.6 Bitmap, Primary b-64 > 1 Bitmap, Secondary b-64 > > I would think this means Binary 64 bits (8 bytes). > > You have not shown your packager definition of fields 0.6 (primary > bitmap) and 1 (secondary bitmap). > The bitmap in the request is fine, but yours looks odd (even given > ASCII and not binary), probably because you are attempting something not > intended to be supported by jPos as it stands (a composite field 0 - > which would normally by the message MTI). > > Your echo is also not an 0810 message, I would guess the EFT owner is > addressing the biggest issues with your message first - the message > being way too large as your bitmap is taking up twice the expected > number of bits. > > > > > I need to get the bitmap to conform to the expected dump. > Make sure you are using a binary field, and if you can share your > packager that might help us see what other problems you might be causing. > > My suggestion - I agree with Alejandro completely - is to use a header > for everything upto and include field 0.4, then use jPos as it's design > intends for everything else (remember to correct your bitmap definition > (to a binary form)). The EFT interface will never know you are placing > their header filed in a jpos header (rather than field 0) and they can > interpret it however they like (and so can you). > > To use jPos in this manner will need some code changes (not lease > qualifying the position of the MTI and associated processing (isRequest > etc), but also the handling of the bitmap which seems to also have been > affected by your approach. > > -- > Mark > |
|
|
Re: Nested field 0Hi Mark/Alen,
Kindly assist by responding to this my last posting. Thank you for all your support. --- In jpos-dev@..., "super_foly" <super_foly@...> wrote: > > Hi Mark/Alen, > Thanks for your response. > I now send the header as you suggested within a channel I developed. > > An extract of the channel is below: > > public class EswitchPostChannel extends BaseChannel { > /** > * Public constructor (used by Class.forName("...").newInstance > */ > protected Logger logger = null; > protected String realm = "EswitchLogger"; > protected String originalRealm = null; > protected String header = "RENDEZVOUS- > 85831.000012345678901234"; > BufferedReader reader = null; > > > public EswitchPostChannel () { > super(); > } > /** > * Construct client ISOChannel > * @param host server TCP Address > * @param port server port number > * @param p an ISOPackager > * @see ISOPackager > */ > public EswitchPostChannel (String host, int port, ISOPackager > super(host, port, p); > } > /** > * Construct server ISOChannel > * @param p an ISOPackager > * @exception IOException > * @see ISOPackager > */ > public EswitchPostChannel (ISOPackager p) throws IOException { > super(p); > } > /** > * constructs a server ISOChannel associated with a Server > * @param p an ISOPackager > * @param serverSocket where to accept a connection > * @exception IOException > * @see ISOPackager > */ > public EswitchPostChannel (ISOPackager p, ServerSocket > serverSocket) > throws IOException > { > super(p, serverSocket); > } > > protected void sendMessageLength(int len) throws IOException { > serverOut.write (len >> 8); > serverOut.write (len); > } > > protected int getMessageLength() throws IOException, > { > return -1; > } > > > protected void sendMessageHeader(ISOMsg m, int len) throws > IOException { > try { > BitSet bset = (BitSet) m.getValue(-1); > > String strRawBmap > > > ///ISOUtil.byte2BitSet(bmap, > strRawBmap.getBytes(), 64); > header = header + m.getMTI() + > ISOUtil.bitSet2String(bset.get(0, 64)); > > System.out.print("HEADER >>>>>>" + > header); > serverOut.write(header.getBytes()); > > > } catch (ISOException e) { > System.out.print(e.getMessage()); > > } > } > > /** > * * @param header Hex representation of header > */ > public void setHeader (String header) { > super.setHeader ( > ISOUtil.hex2byte (header.getBytes(), 0, header.length > ); > } > > } > > The EFT platform receives my message but I seem to have a problem > with 0.6 which expects b-64. I retreive the primary bitmap and > noticed that its sent in ASCII format to the platform. However, it > expects binary data which I have not been able to acheive in getting > across to this platform. > > This is the dump from the platform of the test I carried out: > > [0] 52 45 4E 44 45 5A 56 4F 55 53 2D 38 35 38 33 31 RENDEZVOUS- > 85831 > > [16] 2E 30 30 30 30 31 32 33 34 35 36 37 38 39 30 > 31 .000012345678901 > > [32] 32 33 34 30 38 30 30 2340800 > > > INFO 2008-11-18 20:17:12,927 : >>Input Bitmaps As strings of 1s and > 0s>> > 0000000000000000 > 0000000000000000 > 0000000000000000 > 0000000000000000 > 0000000000000000 > 0000000000000000 > 0000000000000000 > 0000000000000000 > > INFO 2008-11-18 20:17:12,937 : >>>>>Full TranCode: 080000 > >>>>>2008-11-18 8:17:12:938 : 0800 00 POS Purchase - Received > java.lang.StringIndexOutOfBoundsException: String index out of > 4 > at java.lang.String.substring(Unknown Source) > at > com.neptunesoftware.gateway.host.XAPIPostilionInterface.SetGWayValue ( > XAPIPostilionInterface.java:42) > > > Please how do I pack up the BitSet in binary format as part of my > header to ensure the outcome is as below: > > [0] 52 45 4E 44 45 5A 56 4F 55 53 2D 38 35 38 33 31 RENDEZVOUS- > 8583 > > [16] 2E 30 30 30 30 31 32 33 34 35 36 37 38 39 30 > 31 .00001234567890 > > [32] 32 33 34 30 38 30 30 82 20 00 00 00 00 00 00 04 > 2340800. ...... > > [48] 00 00 00 00 00 00 00 30 35 30 36 30 33 32 32 > 31 .......05060322 > > [64] 36 32 39 36 35 36 37 30 36 36 6296567066 > > > INFO 2008-11-15 19:03:49,296 : >>Input Bitmaps As strings of 1s > 0s>> > 1000001000100000 > 0000000000000000 > 0000000000000000 > 0000000000000000 > 0000010000000000 > 0000000000000000 > 0000000000000000 > 0000000000000000 > > My Packager is given below: > > public class EswitchPackager extends ISOBasePackager implements > LogSource { > protected Logger logger = null; > protected String realm = "EswitchLogger"; > protected String originalRealm = null; > > > protected ISOFieldPackager fld[] = { > > /*000*/new IFA_NUMERIC ( 4, "MESSAGE IDENTIFIER"), > /*001*/new IFB_BITMAP ( 8, "BIT MAP"), > /*002*/new IFA_LLNUM ( 19, "PAN - PRIMARY ACCOUNT > NUMBER"), > /*003*/new IFA_NUMERIC ( 6, "PROCESSING CODE"), > /*004*/new IFA_NUMERIC ( 12, "AMOUNT, TRANSACTION"), > /*005*/new IFA_NUMERIC ( 12, "AMOUNT, SETTLEMENT"), > /*006*/new IFA_NUMERIC ( 12, "AMOUNT, CARDHOLDER > BILLING"), > /*007*/new IFA_NUMERIC ( 10, "TRANSMISSION DATE AND > TIME"), > new IFA_NUMERIC ( 8, "AMOUNT, CARDHOLDER BILLING FEE"), > new IFA_NUMERIC ( 8, "CONVERSION RATE, SETTLEMENT"), > new IFA_NUMERIC ( 8, "CONVERSION RATE, CARDHOLDER > BILLING"), > new IFA_NUMERIC ( 6, "SYSTEM TRACE AUDIT NUMBER"), > new IFA_NUMERIC ( 6, "TIME, LOCAL TRANSACTION"), > new IFA_NUMERIC ( 4, "DATE, LOCAL TRANSACTION"), > new IFA_NUMERIC ( 4, "DATE, EXPIRATION"), > new IFA_NUMERIC ( 4, "DATE, SETTLEMENT"), > new IFA_NUMERIC ( 4, "DATE, CONVERSION"), > new IFA_NUMERIC ( 4, "DATE, CAPTURE"), > new IFA_NUMERIC ( 4, "MERCHANTS TYPE"), > new IFA_NUMERIC ( 3, "ACQUIRING INSTITUTION COUNTRY > CODE"), > new IFA_NUMERIC ( 3, "PAN EXTENDED COUNTRY CODE"), > new IFA_NUMERIC ( 3, "FORWARDING INSTITUTION COUNTRY > CODE"), > new IFA_NUMERIC ( 3, "POINT OF SERVICE ENTRY MODE"), > new IFA_NUMERIC ( 3, "CARD SEQUENCE NUMBER"), > new IFA_NUMERIC ( 3, "NETWORK INTERNATIONAL > IDENTIFIEER"), > new IFA_NUMERIC ( 2, "POINT OF SERVICE CONDITION > new IFA_NUMERIC ( 2, "POINT OF SERVICE PIN CAPTURE > CODE"), > new IFA_NUMERIC ( 1, "AUTHORIZATION IDENTIFICATION RESP > LEN"), > new IFA_AMOUNT ( 9, "AMOUNT, TRANSACTION FEE"), > new IFA_AMOUNT ( 9, "AMOUNT, SETTLEMENT FEE"), > new IFA_AMOUNT ( 9, "AMOUNT, TRANSACTION PROCESSING > FEE"), > new IFA_AMOUNT ( 9, "AMOUNT, SETTLEMENT PROCESSING > FEE"), > new IFA_LLNUM ( 11, "ACQUIRING INSTITUTION IDENT CODE"), > new IFA_LLNUM ( 11, "FORWARDING INSTITUTION IDENT > CODE"), > new IFA_LLCHAR ( 28, "PAN EXTENDED"), > new IFA_LLNUM ( 37, "TRACK 2 DATA"), > new IFA_LLLCHAR (104, "TRACK 3 DATA"), > new IF_CHAR ( 12, "RETRIEVAL REFERENCE NUMBER"), > new IF_CHAR ( 6, "AUTHORIZATION IDENTIFICATION > RESPONSE"), > new IF_CHAR ( 2, "RESPONSE CODE"), > new IF_CHAR ( 3, "SERVICE RESTRICTION CODE"), > new IF_CHAR ( 8, "CARD ACCEPTOR TERMINAL > IDENTIFICACION"), > new IF_CHAR ( 15, "CARD ACCEPTOR IDENTIFICATION > CODE" ), > new IF_CHAR ( 40, "CARD ACCEPTOR NAME/LOCATION"), > new IFA_LLCHAR ( 25, "ADITIONAL RESPONSE DATA"), > new IFA_LLCHAR ( 76, "TRACK 1 DATA"), > new IFA_LLLCHAR (999, "ADITIONAL DATA - ISO"), > new IFA_LLLCHAR (999, "ADITIONAL DATA - NATIONAL"), > new IFA_LLLCHAR (999, "ADITIONAL DATA - PRIVATE"), > new IF_CHAR ( 3, "CURRENCY CODE, TRANSACTION"), > new IF_CHAR ( 3, "CURRENCY CODE, SETTLEMENT"), > new IF_CHAR ( 3, "CURRENCY CODE, CARDHOLDER > BILLING" ), > new IFA_BINARY ( 8, "PIN DATA" ), > new IFA_NUMERIC ( 16, "SECURITY RELATED CONTROL > INFORMATION"), > new IFA_LLLCHAR (120, "ADDITIONAL AMOUNTS"), > new IFA_LLLCHAR (999, "RESERVED ISO"), > new IFA_LLLCHAR (999, "RESERVED ISO"), > new IFA_LLLCHAR (999, "RESERVED NATIONAL"), > new IFA_LLLCHAR (999, "RESERVED NATIONAL"), > new IFA_LLLCHAR (999, "RESERVED NATIONAL"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE"), > new IFA_BINARY ( 8, "MESSAGE AUTHENTICATION CODE > FIELD"), > new IFA_BINARY ( 8, "BITMAP, EXTENDED"), > new IFA_NUMERIC ( 1, "SETTLEMENT CODE"), > new IFA_NUMERIC ( 2, "EXTENDED PAYMENT CODE"), > new IFA_NUMERIC ( 3, "RECEIVING INSTITUTION COUNTRY > CODE"), > new IFA_NUMERIC ( 3, "SETTLEMENT INSTITUTION COUNTRY > CODE"), > new IFA_NUMERIC ( 3, "NETWORK MANAGEMENT INFORMATION > CODE"), > new IFA_NUMERIC ( 4, "MESSAGE NUMBER"), > new IFA_NUMERIC ( 4, "MESSAGE NUMBER LAST"), > new IFA_NUMERIC ( 6, "DATE ACTION"), > new IFA_NUMERIC ( 10, "CREDITS NUMBER"), > new IFA_NUMERIC ( 10, "CREDITS REVERSAL NUMBER"), > new IFA_NUMERIC ( 10, "DEBITS NUMBER"), > new IFA_NUMERIC ( 10, "DEBITS REVERSAL NUMBER"), > new IFA_NUMERIC ( 10, "TRANSFER NUMBER"), > new IFA_NUMERIC ( 10, "TRANSFER REVERSAL NUMBER"), > new IFA_NUMERIC ( 10, "INQUIRIES NUMBER"), > new IFA_NUMERIC ( 10, "AUTHORIZATION NUMBER"), > new IFA_NUMERIC ( 12, "CREDITS, PROCESSING FEE AMOUNT"), > new IFA_NUMERIC ( 12, "CREDITS, TRANSACTION FEE > new IFA_NUMERIC ( 12, "DEBITS, PROCESSING FEE AMOUNT"), > new IFA_NUMERIC ( 12, "DEBITS, TRANSACTION FEE AMOUNT"), > new IFA_NUMERIC ( 16, "CREDITS, AMOUNT"), > new IFA_NUMERIC ( 16, "CREDITS, REVERSAL AMOUNT"), > new IFA_NUMERIC ( 16, "DEBITS, AMOUNT"), > new IFA_NUMERIC ( 16, "DEBITS, REVERSAL AMOUNT"), > new IFA_NUMERIC ( 42, "ORIGINAL DATA ELEMENTS"), > new IF_CHAR ( 1, "FILE UPDATE CODE"), > new IF_CHAR ( 2, "FILE SECURITY CODE"), > new IF_CHAR ( 5, "RESPONSE INDICATOR"), > new IF_CHAR ( 7, "SERVICE INDICATOR"), > new IF_CHAR ( 42, "REPLACEMENT AMOUNTS"), > new IFA_BINARY ( 8, "MESSAGE SECURITY CODE"), > new IFA_AMOUNT ( 17, "AMOUNT, NET SETTLEMENT"), > new IF_CHAR ( 25, "PAYEE"), > new IFA_LLNUM ( 11, "SETTLEMENT INSTITUTION IDENT > CODE"), > new IFA_LLNUM ( 11, "RECEIVING INSTITUTION IDENT > new IFA_LLCHAR ( 17, "FILE NAME"), > new IFA_LLCHAR ( 28, "ACCOUNT IDENTIFICATION 1"), > new IFA_LLCHAR ( 28, "ACCOUNT IDENTIFICATION 2"), > new IFA_LLLCHAR (100, "TRANSACTION DESCRIPTION"), > new IFA_LLLCHAR (999, "RESERVED ISO USE"), > new IFA_LLLCHAR (999, "RESERVED ISO USE"), > new IFA_LLLCHAR (999, "RESERVED ISO USE"), > new IFA_LLLCHAR (999, "RESERVED ISO USE"), > new IFA_LLLCHAR (999, "RESERVED ISO USE"), > new IFA_LLLCHAR (999, "RESERVED ISO USE"), > new IFA_LLLCHAR (999, "RESERVED ISO USE"), > new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), > new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), > new IFA_LLLCHAR (999, "RESERVED NATIONAL USE" ), > new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), > new IFA_LLLCHAR (999, "RESERVED NATIONAL USE" ), > new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), > new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), > new IFA_LLLCHAR (999, "RESERVED NATIONAL USE"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), > new IFA_LLLCHAR (999, "RESERVED PRIVATE USE"), > new IFA_LLLCHAR (50, "RESERVED PRIVATE USE"), > new IFA_LLLCHAR (999, "MAC 2") > }; > > public EswitchPackager() { > super(); > try { > setFieldPackager(fld); > } catch (Exception e) { > Logger.log (new LogEvent (this, e.getMessage())); > } > } > > /* (non-Javadoc) > * @see org.jpos.util.LogSource#setLogger > (org.jpos.util.Logger, java.lang.String) > */ > public void setLogger (Logger logger, String realm) { > this.logger = logger; > this.realm = realm; > if (originalRealm == null) > originalRealm = realm; > } > > /* (non-Javadoc) > * @see org.jpos.util.LogSource#getRealm() > */ > public String getRealm () { > return realm; > } > > /* (non-Javadoc) > * @see org.jpos.util.LogSource#getLogger() > */ > public Logger getLogger() { > return logger; > } > public String getOriginalRealm() { > return originalRealm == null ? > this.getClass().getName() : originalRealm; > } > > } > > > --- In jpos-dev@..., Mark Salter <marksalter@> wrote: > > > > super_foly wrote: > > > Hi Len, > > > you are write it looks like a header. however the EFT > > > owner insisted its meant to be field 0. > > Does the numbering convention matter? As long as the message > arrives > > properly structured on the EFT interface, all will be well. > > > > Is there a good reason - perhaps a report - that means > the "composite > > header field" needs to be treated as an entity? > > > > > > > > I am now able to send the message across to the platform > > But not using a header as Alejandro suggested, I think you are > > jPos *not* as intended and getting rather odd results... > > > > > > > > Expected: > > > ********* > > > > > [32] 32 33 34 30 38 30 30 82 20 00 00 00 00 00 00 04 > 2340800. ....... > > > [48] 00 00 00 00 00 00 00 30 35 30 36 30 33 32 32 > 31 .......050603221 > > > > > > > > > My Implementation: > > > ******************** > > > [0] 82 20 00 00 00 00 00 00 04 00 00 00 00 00 00 > 00 . .............. > > > > This seems to be an additional header, is this intentional? > > > > > [16] 01 03 52 45 4E 44 45 5A 56 4F 55 53 2D 38 35 > 38 ..RENDEZVOUS-858 > > > > > > [32] 33 31 2E 30 30 30 30 31 32 33 34 35 36 37 38 39 > 31.0000123456789 > > > > > > [48] 30 31 32 33 34 30 38 30 30 30 30 30 30 30 30 30 > 0123408000000000 > > > > > > [64] 31 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 > 1000000000000000 > > > > > > [80] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 > 0000000000000000 > > > > > > [96] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 > 0000000000000000 > > > > > > [112] 30 30 30 30 30 30 30 30 30 31 30 31 36 31 30 31 > 0000000001016101 > > > > > > [128] 33 32 34 31 36 32 30 33 36 32 37 30 324162036270 > > > > It seems you are using an ASCII bitmap, where a binary one is > required. > > > > The original extract shows :- > > > > 0.6 Bitmap, Primary b-64 > > 1 Bitmap, Secondary b-64 > > > > I would think this means Binary 64 bits (8 bytes). > > > > You have not shown your packager definition of fields 0.6 (primary > > bitmap) and 1 (secondary bitmap). > > The bitmap in the request is fine, but yours looks odd (even > it is > > ASCII and not binary), probably because you are attempting > something not > > intended to be supported by jPos as it stands (a composite field 0 - > > which would normally by the message MTI). > > > > Your echo is also not an 0810 message, I would guess the EFT owner > is > > addressing the biggest issues with your message first - the message > > being way too large as your bitmap is taking up twice the expected > > number of bits. > > > > > > > > I need to get the bitmap to conform to the expected dump. > > Make sure you are using a binary field, and if you can share your > > packager that might help us see what other problems you might be > causing. > > > > My suggestion - I agree with Alejandro completely - is to use a > header > > for everything upto and include field 0.4, then use jPos as it's > design > > intends for everything else (remember to correct your bitmap > definition > > (to a binary form)). The EFT interface will never know you are > placing > > their header filed in a jpos header (rather than field 0) and > can > > interpret it however they like (and so can you). > > > > To use jPos in this manner will need some code changes (not lease > > qualifying the position of the MTI and associated processing > (isRequest > > etc), but also the handling of the bitmap which seems to also have > been > > affected by your approach. > > > > -- > > Mark > > > |
|
|
Re: Re: Nested field 0 |