Posting "127.010" with NACChannel

111 views
Skip to first unread message

ccav tech

unread,
Aug 22, 2019, 5:33:55 AM8/22/19
to jPOS Users
Dear JPos Team,

 We are observing when we are passing sub field like "127.010" by using NACChannel we are not bale to received response from Postilion switch.
 We are passing below details to the switch

GenericPackager packager = new GenericPackager("src/main/resources/basic.xml");
ISOMsg  vIsoMsg = new ISOMsg();
vIsoMsg.setPackager(packager);

vIsoMsg.set(0, "0420");
vIsoMsg.set(2, "4289697648928768");//PAN No
vIsoMsg.set(3, "000001");//Processing Code (TTC + MTI)
vIsoMsg.set(4, "000000020000");//TxnAmt
vIsoMsg.set(7, "0326073630");//TRANSMISSION DATE AND TIME
vIsoMsg.set(11, "105718");//SYSTEM TRACE AUDIT NUMBER
vIsoMsg.set(12, "113630");//TIME, LOCAL TRANSACTION
vIsoMsg.set(13, "0326");//DATE, LOCAL TRANSACTION
vIsoMsg.set(14, "2407");//DATE, EXPIRATION
vIsoMsg.set(18, "5691");//MERCHANTS TYPE
vIsoMsg.set(22, "012");//POINT OF SERVICE ENTRY MODE
vIsoMsg.set(25, "08");//POINT OF SERVICE CONDITION CODE
vIsoMsg.set(32, "454899");//ACQUIRING INSTITUTION IDENT CODE (A code identifying the acquirer)
vIsoMsg.set(37, "908507105790");//RETRIEVAL REFERENCE NUMBER
vIsoMsg.set(38, "154545");
vIsoMsg.set(39, "00");
vIsoMsg.set(41, "00050041");//CARD ACCEPTOR TERMINAL IDENTIFICACION (TID)
vIsoMsg.set(42, "027174");//CARD ACCEPTOR IDENTIFICATION CODE (MID)
vIsoMsg.set(43, "COMMERCIAL8360DubaiAEAE");//CARD ACCEPTOR NAME/LOCATION
vIsoMsg.set(49, "784");//CURRENCY CODE, TRANSACTION
vIsoMsg.set(90, "010011909607110851360000045489900000000000");
vIsoMsg.set(123, "100030104000000");//RESERVED PRIVATE USE
vIsoMsg.set("127.10", "846");//CVV2

byte[] pckedIsoMsg = vIsoMsg.pack();
decodedHexMsg = decodeHexDumpMsg(ISOUtil.hexdump(pckedIsoMsg));
vIsoMsg.dump(System.out, "");
hexlen = (Integer.toHexString(decodedHexMsg.length() / 2));//.toUpperCase();
decodedHexMsg = "00" + hexlen + decodedHexMsg;


NACChannel channel = new NACChannel(payClientIP, payClientPort, packager, null);
System.out.println("ISO Request :: "+"\n"+ISOUtil.hexdump(pckedIsoMsg));
channel.connect();

channel.send(ISOUtil.hex2byte(decodedHexMsg));
System.out.println("Request Hitting Time :: "+ new Date());
ISOMsg postBridgeISO = channel.receive();
System.out.println("Response Received Time :: "+ new Date());

Below are the console hex dump logs
ISO Request ::
0000  30 34 32 30 F2 3C 44 81  0E E0 80 00 00 00 00 40  0420.<D........@
0010  00 00 00 22 31 36 34 32  38 39 36 39 37 36 34 38  ..."164289697648
0020  39 32 38 37 36 38 30 30  30 30 30 31 30 30 30 30  9287680000010000
0030  30 30 30 32 30 30 30 30  30 33 32 36 30 37 33 36  0002000003260736
0040  33 30 31 30 35 37 31 38  31 31 33 36 33 30 30 33  3010571811363003
0050  32 36 32 34 30 37 35 36  39 31 30 31 32 30 38 30  2624075691012080
0060  36 34 35 34 38 39 39 39  30 38 35 30 37 31 30 35  6454899908507105
0070  37 39 30 31 35 34 35 34  35 30 30 30 30 30 35 30  7901545450000050
0080  30 34 31 30 32 37 31 37  34 20 20 20 20 20 20 20  041027174      
0090  20 20 43 4F 4D 4D 45 52  43 49 41 4C 38 33 36 30    COMMERCIAL8360
00a0  44 75 62 61 69 41 45 41  45 20 20 20 20 20 20 20  DubaiAEAE      
00b0  20 20 20 20 20 20 20 20  20 20 37 38 34 30 31 30            784010
00c0  30 31 31 39 30 39 36 30  37 31 31 30 38 35 31 33  0119096071108513
00d0  36 30 30 30 30 30 34 35  34 38 39 39 30 30 30 30  6000004548990000
00e0  30 30 30 30 30 30 30 30  31 35 31 30 30 30 33 30  0000000015100030
00f0  31 30 34 30 30 30 30 30  30 30 30 30 30 31 39 30  1040000000000190
0100  30 34 30 30 30 30 30 30  30 30 30 30 30 30 30 38  0400000000000008
0110  34 36                                             46

Below are the jpos rule configuration

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager PUBLIC
        "-//jPOS/jPOS Generic Packager DTD 1.0//EN"
        "http://jpos.org/dtd/generic-packager-1.0.dtd">
<isopackager>
  <isofield
      id="0"
      length="4"
      name="MESSAGE TYPE INDICATOR"
      class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="1"
      length="16"
      name="BIT MAP"
      class="org.jpos.iso.IFB_BITMAP"/>
  <isofield
      id="2"
      length="19"
      name="PAN - PRIMARY ACCOUNT NUMBER"
      class="org.jpos.iso.IFA_LLNUM"/>
  <isofield
      id="3"
      length="6"
      name="PROCESSING CODE"
      class="org.jpos.iso.IFA_NUMERIC"/>
     
  <isofield
      id="4"
      length="12"
      name="AMOUNT, TRANSACTION"
      class="org.jpos.iso.IFA_NUMERIC"/>
      <isofield id="5" length="12" name="AMOUNT, SETTLEMENT" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="7"
      length="10"
      name="TRANSMISSION DATE AND TIME"
      class="org.jpos.iso.IFA_NUMERIC"/>
      <isofield id="8" length="8" name="AMOUNT, CARDHOLDER BILLING FEE" class="org.jpos.iso.IFA_NUMERIC"/>
          <isofield id="9" length="8" name="CONVERSION RATE, SETTLEMENT" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="11"
      length="6"
      name="SYSTEM TRACE AUDIT NUMBER"
      class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="12"
      length="6"
      name="TIME, LOCAL TRANSACTION"
      class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="13"
      length="4"
      name="DATE, LOCAL TRANSACTION"
      class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="14"
      length="4"
      name="DATE, EXPIRATION"
      class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield id="15" length="4" name="DATE, SETTLEMENT" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield id="16" length="4" name="DATE, CONVERSION" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield id="17" length="4" name="DATE, CAPTURE" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="18"
      length="4"
      name="MERCHANTS TYPE"
      class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield id="19" length="3" name="ACQUIRING INSTITUTION COUNTRY CODE" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield id="20" length="3" name="PAN EXTENDED COUNTRY CODE" class="org.jpos.iso.IFA_NUMERIC"/>
 
  <isofield id="21" length="3" name="FORWARDING INSTITUTION COUNTRY CODE" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="22"
      length="3"
      name="POINT OF SERVICE ENTRY MODE"
      class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield id="23" length="3" name="CARD SEQUENCE NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield id="24" length="3" name="NETWORK INTERNATIONAL IDENTIFIEER" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="25"
      length="2"
      name="POINT OF SERVICE CONDITION CODE"
      class="org.jpos.iso.IFA_NUMERIC"/>
      <isofield id="27" length="1" name="AUTHORIZATION IDENTIFICATION RESP LEN" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield id="28" length="9" name="AMOUNT, TRANSACTION FEE" class="org.jpos.iso.IFA_AMOUNT"/>
  <isofield id="29" length="9" name="AMOUNT, SETTLEMENT FEE" class="org.jpos.iso.IFA_AMOUNT"/>
  <isofield id="30" length="9" name="AMOUNT, TRANSACTION PROCESSING FEE" class="org.jpos.iso.IFA_AMOUNT"/>
   <isofield id="31" length="9" name="AMOUNT, SETTLEMENT PROCESSING FEE" class="org.jpos.iso.IFA_AMOUNT"/>
  <isofield
      id="32"
      length="11"
      name="ACQUIRING INSTITUTION IDENT CODE"
      class="org.jpos.iso.IFA_LLNUM"/>
  <isofield id="33" length="11" name="FORWARDING INSTITUTION IDENT CODE" class="org.jpos.iso.IFA_LLNUM"/>
  <isofield id="34" length="28" name="PAN EXTENDED" class="org.jpos.iso.IFA_LLCHAR"/>
  <isofield id="35" length="37" name="TRACK 2 DATA" class="org.jpos.iso.IFA_LLNUM"/>
  <isofield id="36" length="104" name="TRACK 3 DATA" class="org.jpos.iso.IFA_LLLCHAR"/>
  <isofield
      id="37"
      length="12"
      name="RETRIEVAL REFERENCE NUMBER"
      class="org.jpos.iso.IF_CHAR"/>
      <isofield id="38" length="6" name="AUTHORIZATION IDENTIFICATION RESPONSE" class="org.jpos.iso.IF_CHAR"/>
  <isofield id="39" length="2" name="RESPONSE CODE" class="org.jpos.iso.IF_CHAR"/>
  <isofield
      id="41"
      length="8"
      name="CARD ACCEPTOR TERMINAL IDENTIFICACION"
      class="org.jpos.iso.IF_CHAR"/>
     
  <isofield
      id="42"
      length="15"
      name="CARD ACCEPTOR IDENTIFICATION CODE"
      class="org.jpos.iso.IF_CHAR"/>
  <isofield
      id="43"
      length="40"
      name="CARD ACCEPTOR NAME/LOCATION"
      class="org.jpos.iso.IF_CHAR"/>
   <isofield id="44" length="25" name="ADITIONAL RESPONSE DATA" class="org.jpos.iso.IFA_LLCHAR"/>
  <isofield
      id="49"
      length="3"
      name="CURRENCY CODE, TRANSACTION"
      class="org.jpos.iso.IFA_NUMERIC"/>
   <isofield id="54" length="120" name="ADDITIONAL AMOUNTS" class="org.jpos.iso.IFA_LLLCHAR"/>
   <isofield id="90" length="42" name="ORIGINAL DATA ELEMENTS" class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="123"
      length="999"
      name="RESERVED PRIVATE USE"
      class="org.jpos.iso.IFA_LLLCHAR"/>
 
  <isofieldpackager
      id="127"  
      length="999999"
      name="RESERVED PRIVATE USE"
      class="org.jpos.iso.IFA_LLLLLLBINARY"
      packager="org.jpos.iso.packager.GenericSubFieldPackager">
     <isofield
    id="0"
    length="0"
    name="Placeholder"
    class="org.jpos.iso.IF_NOP" />
<isofield
    id="1"
    length="16"
    name="Bit Map"
    class="org.jpos.iso.IFA_BITMAP" />
    <isofield
     id="10"
     length="3"
     name="CVV2"
     class="org.jpos.iso.IFA_NUMERIC"/>
    <!-- <isofield
    id="3"
    length="16"
    name="Bit Map"
    class="org.jpos.iso.IFA_BITMAP" />
    <isofield
    id="6"
    length="16"
    name="Bit Map"
    class="org.jpos.iso.IFA_BITMAP" />
    <isofield
    id="20"
    length="16"
    name="Bit Map"
    class="org.jpos.iso.IFA_BITMAP" />
    <isofield
    id="30"
    length="16"
    name="Bit Map"
    class="org.jpos.iso.IFA_BITMAP" /> -->
     <isofield
          id="38"
          length="99"
          name="Additional POS Data Code"
          class="org.jpos.iso.IFA_LLCHAR"/>    
     
  </isofieldpackager>

  </isopackager>

Please suggest so that we can able to use sub-field...


ccav tech

unread,
Aug 22, 2019, 9:44:34 AM8/22/19
to jPOS Users
Please suggest..

Alwyn Schoeman

unread,
Aug 22, 2019, 1:20:39 PM8/22/19
to jPOS Users
Any reason why you're not using the Postilion packager?

Alwyn Schoeman


--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAOfY%3Dj-tgV9aaHw6tR8QVo%2B0%2Bm2ZWF-UmdZ%3Dp6k%2B2r_dmBQ_HQ%40mail.gmail.com.

dheeraj gupta

unread,
Aug 23, 2019, 12:16:24 AM8/23/19
to jpos-...@googlegroups.com
Dear Alwyn,  Team,

We are new here. Can you help how to use Postilion Packager.

Please suggest... And provide any link if you have for reference.... 



chhil

unread,
Aug 23, 2019, 1:23:35 AM8/23/19
to jpos-...@googlegroups.com
The recommendation has been given a few times, see conversation..


Back to your problem,

We are observing when we are passing sub field like “127.010” by using NACChannel we are not bale to received response from Postilion switch.


Best bet is to ask Postilion people why they are not responding, their logs will tell them exactly where the problem is in your message, they will tell you what fields if any had a problem and you can take it from there.

-chhil





ccav tech

unread,
Aug 26, 2019, 3:51:46 PM8/26/19
to jPOS Users
Dear Team,
We have discussed with our Postilion switch team, but they are saying they have not received request but here i am not understanding if we are hitting their system without sub field they are getting proper request and we received response as well but if we add sub field in my message then they have not received request... is there anything we missed..
We have already shared our rule and code base above.

Please help...

On Mon, Aug 26, 2019 at 9:14 PM ccav tech <ccavfo...@gmail.com> wrote:
Please suggest...

On Mon, Aug 26, 2019 at 11:13 AM ccav tech <ccavfo...@gmail.com> wrote:
Dear Team,
We have discussed with our Postilion switch team, but they are saying they have not received request but here i am not understanding if we are hitting their system without sub field they are getting proper request and we received response as well but if we add sub field in my message then they have not received request... is there anything we missed..
We have already shared our rule and code base above.

Please help...

jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]

---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]

---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]

---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]

---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAPazefBKc2UXsUYi5bHYtoH0SyK1baumdRTerE%2BvoMFyk5HaEA%40mail.gmail.com.



If you reply to this email, your message will be added to the discussion below:
http://jpos.1045706.n5.nabble.com/jpos-users-Posting-127-010-with-NACChannel-tp5718903p5718909.html
To start a new topic under jPOS - Users, email ml+s1045706...@n5.nabble.com
To unsubscribe from jPOS, click here.
NAML

chhil

unread,
Aug 27, 2019, 3:46:42 AM8/27/19
to jpos-...@googlegroups.com
I am very surprised by the response of "not received request" from the people who you are interacting with.
Since when you populate 127 there is an issue taking a look at the packager is the best bet.

Take a look at field 127 packager provided for Postilion by jpos, specifically field 0.

Now look at yours.

Change it to what jpos has provided (class="org.jpos.iso.IF_CHAR") and try.

-chhil

jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org

---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAOfY%3Dj_fr%2B7GddHdUjLZsdRe5Nu15c9LBWMjej0Rpf%3Dr9AuKCg%40mail.gmail.com.

dheeraj gupta

unread,
Aug 27, 2019, 7:54:07 AM8/27/19
to jpos-...@googlegroups.com
Thanks chill..
Now it is working.. Can you help to suggest is NACChannel OK to handle multiple request and response from/to switch for production environment? 

please suggest... 


chhil

unread,
Aug 27, 2019, 8:14:58 AM8/27/19
to jpos-...@googlegroups.com

If you design your system the right way using jpos components via deploy files that use the mux linked to channels and use the mux to send requests and receive responses then you can send and receive multiple request/responses.

If you use the channel to send and receive you are single threaded. The mux not only allows multiple request/responses but it matches the request to the response (think of late responses and no responses in between these multiple reuests).

Please read the "free" jpos programmers manual.  
-chhil

dheeraj gupta

unread,
Aug 28, 2019, 12:22:33 AM8/28/19
to jpos-...@googlegroups.com
Thanks chill, 

Can you suggest how we can add logging while sending request/response via using channel so that I can exactly find out what data that we have send and receive from switch... 

chhil

unread,
Aug 28, 2019, 12:59:55 AM8/28/19
to jpos-...@googlegroups.com
Use JPOS the way its supposed to be used and you will get all logging for free.

sending request/response via using channel

Don't do this, don't use channels directly, use the mux to send requests and receive responses. The mux is tied to the channel through configuration.
What do you think will happen when you send 2 requests (req1 and req2) via the channel, and received resp2 and then resp1 or don't receive a response?
The channel will simply hand the response to anyone waiting on the channel.receive. With a mux you dont have to worry about this, it matches the request response and hands the right response to to the caller.
  
Use the tutorials available.  

You wont get hexdumps out of the box for PCI compliance reasons. You can extend a channel and add hexdumps of the messages received and sent for debugging.

-chhil

ccav tech

unread,
Aug 30, 2019, 7:33:34 AM8/30/19
to jPOS Users
Dear Chhil,

We want to send sub field "127.29"but as you provided rules, you just
provide rules till "127.26", so please suggest how do we add if i want to
add other sub fields like  "127.29". This field i want to use cause want to
send 3d secure authentication to Postilion Switch.

Please find the below rules that you have provided to use sub filed of 127
field.

<isofieldpackager
      id=3D"127"
      length=3D"999999"
      name=3D"RESERVED PRIVATE USE"
      class=3D"org.jpos.iso.IFA_LLLLLLBINARY"
      packager=3D"org.jpos.iso.packager.GenericSubFieldPackager">
      <isofield
          id=3D"0"
          length=3D"0"
          name=3D"PLACEHOLDER"
          class=3D"org.jpos.iso.IF_CHAR"/>
      <isofield
          id=3D"1"
          length=3D"8"
          name=3D"BITMAP"
          class=3D"org.jpos.iso.IFB_BITMAP"/>
      <isofield
          id=3D"2"
          length=3D"32"
          name=3D"SWITCH KEY"
          class=3D"org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id=3D"3"
          length=3D"48"
          name=3D"ROUTING INFORMATION"
          class=3D"org.jpos.iso.IF_CHAR"/>
      <isofield
          id=3D"4"
          length=3D"22"
          name=3D"POS DATA"
          class=3D"org.jpos.iso.IF_CHAR"/>
      <isofield
          id=3D"5"
          length=3D"73"
          name=3D"SERVICE STATION DATA"
          class=3D"org.jpos.iso.IF_CHAR"/>
      <isofield
          id=3D"6"
          length=3D"2"
          name=3D"AUTHORIZATION PROFILE"
          class=3D"org.jpos.iso.IFA_NUMERIC"/>
      <isofield
          id=3D"7"
          length=3D"50"
          name=3D"CHECK DATA"
          class=3D"org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id=3D"8"
          length=3D"128"
          name=3D"RETENTION DATA"
          class=3D"org.jpos.iso.IFA_LLLCHAR"/>
      <isofield
          id=3D"9"
          length=3D"255"
          name=3D"ADDITIONAL NODE DATA"
          class=3D"org.jpos.iso.IFA_LLLCHAR"/>
      <isofield
          id=3D"10"
          length=3D"3"
          name=3D"CVV2"
          class=3D"org.jpos.iso.IFA_NUMERIC"/>
      <isofield
          id=3D"11"
          length=3D"32"
          name=3D"ORIGINAL KEY"
          class=3D"org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id=3D"12"
          length=3D"25"
          name=3D"TERMINAL OWNDER"
          class=3D"org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id=3D"13"
          length=3D"17"
          name=3D"POS GEOGRAPHIC DATA"
          class=3D"org.jpos.iso.IF_CHAR"/>
      <isofield
          id=3D"14"
          length=3D"8"
          name=3D"SPONSOR BANK"
          class=3D"org.jpos.iso.IF_CHAR"/>
      <isofield
          id=3D"15"
          length=3D"29"
          name=3D"AVS REQUEST"
          class=3D"org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id=3D"16"
          length=3D"1"
          name=3D"AVS RESPONSE"
          class=3D"org.jpos.iso.IF_CHAR"/>
      <isofield
          id=3D"17"
          length=3D"50"
          name=3D"CARDHOLDER INFORMATION"
          class=3D"org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id=3D"18"
          length=3D"50"
          name=3D"VALIDATION DATA"
          class=3D"org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id=3D"19"
          length=3D"45"
          name=3D"BANK DETAILS"
          class=3D"org.jpos.iso.IF_CHAR"/>
      <isofield
          id=3D"20"
          length=3D"8"
          name=3D"AUTHORIZER DATE SETTLEMENT"
          class=3D"org.jpos.iso.IFA_NUMERIC"/>
      <isofield
          id=3D"21"
          length=3D"12"
          name=3D"RECORD IDENTIFICATION"
          class=3D"org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id=3D"22"
          length=3D"99999"
          name=3D"STRUCTURED DATA"
          class=3D"org.jpos.iso.IFA_LLLLLCHAR"/>
      <isofield
          id=3D"23"
          length=3D"253"
          name=3D"PAYEE NAME AND ADDRESS"
          class=3D"org.jpos.iso.IF_CHAR"/>
      <isofield
          id=3D"24"
          length=3D"28"
          name=3D"PAYER ACCOUNT INFORMATION"
          class=3D"org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id=3D"25"
          length=3D"8000"
          name=3D"ICC DATA"
          class=3D"org.jpos.iso.IFA_LLLLCHAR"/>
      <isofield
          id=3D"26"
          length=3D"20"
          name=3D"ORIGINAL NODE"
          class=3D"org.jpos.iso.IFA_LLCHAR"/>

please suggest.

On Fri, Aug 30, 2019 at 2:51 PM ccav tech <ccavfo...@gmail.com> wrote:
Dear Chhil,

We want to send sub field "127.29"but as you provided rules, you just provide rules till "127.26", so please suggest how do we add if i want to add other sub fields like  "127.29". This field i want to use cause want to send 3d secure authentication to Postilion Switch.

Please find the below rules that you have provided to use sub filed of 127 field.

<isofieldpackager
      id="127"  
      length="999999"
      name="RESERVED PRIVATE USE"
      class="org.jpos.iso.IFA_LLLLLLBINARY"
      packager="org.jpos.iso.packager.GenericSubFieldPackager">
      <isofield
          id="0"
          length="0"
          name="PLACEHOLDER"
          class="org.jpos.iso.IF_CHAR"/>
      <isofield
          id="1"
          length="8"
          name="BITMAP"

          class="org.jpos.iso.IFB_BITMAP"/>
      <isofield
          id="2"
          length="32"
          name="SWITCH KEY"

          class="org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id="3"
          length="48"
          name="ROUTING INFORMATION"
          class="org.jpos.iso.IF_CHAR"/>
      <isofield
          id="4"
          length="22"
          name="POS DATA"
          class="org.jpos.iso.IF_CHAR"/>
      <isofield
          id="5"
          length="73"
          name="SERVICE STATION DATA"
          class="org.jpos.iso.IF_CHAR"/>
      <isofield
          id="6"
          length="2"
          name="AUTHORIZATION PROFILE"

          class="org.jpos.iso.IFA_NUMERIC"/>
      <isofield
          id="7"
          length="50"
          name="CHECK DATA"
          class="org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id="8"
          length="128"
          name="RETENTION DATA"
          class="org.jpos.iso.IFA_LLLCHAR"/>
      <isofield
          id="9"
          length="255"
          name="ADDITIONAL NODE DATA"
          class="org.jpos.iso.IFA_LLLCHAR"/>
      <isofield

          id="10"
          length="3"
          name="CVV2"
          class="org.jpos.iso.IFA_NUMERIC"/>
      <isofield
          id="11"
          length="32"
          name="ORIGINAL KEY"
          class="org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id="12"
          length="25"
          name="TERMINAL OWNDER"
          class="org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id="13"
          length="17"
          name="POS GEOGRAPHIC DATA"
          class="org.jpos.iso.IF_CHAR"/>
      <isofield
          id="14"
          length="8"
          name="SPONSOR BANK"
          class="org.jpos.iso.IF_CHAR"/>
      <isofield
          id="15"
          length="29"
          name="AVS REQUEST"
          class="org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id="16"
          length="1"
          name="AVS RESPONSE"
          class="org.jpos.iso.IF_CHAR"/>
      <isofield
          id="17"
          length="50"
          name="CARDHOLDER INFORMATION"
          class="org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id="18"
          length="50"
          name="VALIDATION DATA"
          class="org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id="19"
          length="45"
          name="BANK DETAILS"
          class="org.jpos.iso.IF_CHAR"/>
      <isofield
          id="20"
          length="8"
          name="AUTHORIZER DATE SETTLEMENT"
          class="org.jpos.iso.IFA_NUMERIC"/>
      <isofield
          id="21"
          length="12"
          name="RECORD IDENTIFICATION"
          class="org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id="22"
          length="99999"
          name="STRUCTURED DATA"
          class="org.jpos.iso.IFA_LLLLLCHAR"/>
      <isofield
          id="23"
          length="253"
          name="PAYEE NAME AND ADDRESS"
          class="org.jpos.iso.IF_CHAR"/>
      <isofield
          id="24"
          length="28"
          name="PAYER ACCOUNT INFORMATION"
          class="org.jpos.iso.IFA_LLCHAR"/>
      <isofield
          id="25"
          length="8000"
          name="ICC DATA"
          class="org.jpos.iso.IFA_LLLLCHAR"/>
      <isofield
          id="26"
          length="20"
          name="ORIGINAL NODE"
          class="org.jpos.iso.IFA_LLCHAR"/>

please suggest.

On Wed, Aug 28, 2019 at 10:30 AM chhil [via jPOS] <ml+s1045706...@n5.nabble.com> wrote:
Use JPOS the way its supposed to be used and you will get all logging for free.

sending request/response via using channel

Don't do this, don't use channels directly, use the mux to send requests and receive responses. The mux is tied to the channel through configuration.
What do you think will happen when you send 2 requests (req1 and req2) via the channel, and received resp2 and then resp1 or don't receive a response?
The channel will simply hand the response to anyone waiting on the channel.receive. With a mux you dont have to worry about this, it matches the request response and hands the right response to to the caller.
  
Use the tutorials available.  

You wont get hexdumps out of the box for PCI compliance reasons. You can extend a channel and add hexdumps of the messages received and sent for debugging.

-chhil

On Wed, Aug 28, 2019 at 9:52 AM dheeraj gupta <[hidden email]> wrote:
Thanks chill, 

Can you suggest how we can add logging while sending request/response via using channel so that I can exactly find out what data that we have send and receive from switch... 

Please suggest...

To start a new topic under jPOS - Users, email [hidden email]
To unsubscribe from jPOS, click here.
NAML

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
If you reply to this email, your message will be added to the discussion below:

chhil

unread,
Aug 30, 2019, 7:54:48 AM8/30/19
to jpos-...@googlegroups.com

I pointed you to the one jpos provides as a starter,  you will need to make changes to it based on the actual spec you have. 

Please open the position interface spec that you must have been provided with to code against, find the definition for it and add the appropriate  field packager. If you don't have a specification you should get it from the postilion owners you are interfacing with. 

-chhil




jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org

---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAOfY%3Dj9Uv6jdUYe%2BZG2xg8o82%2BBx6Qb433ytGUkHEC6VBNp_Nw%40mail.gmail.com.

ccav tech

unread,
Aug 30, 2019, 8:40:16 AM8/30/19
to jPOS Users, ccavfo...@gmail.com
Dear Chhil,

Below are the spec details can you help us how do we configure below subfield of 127 field in our rule packager.

Field 127.29 - 3D Secure Data
Format
b40

Description
This is a Postilion specific addition to the ISO 8583 standard. 3D-Secure Data is made up of the
    following two subfields (both with format b20):
    • The Transaction Identifier (XID) (positions 1 to 20).
    • The Cardholder Authentication Verification Value (CAVV) (positions 21 to 40).
3D-Secure data is passed through the Transaction Manager unaltered and not saved in the database.
The Transaction Manager is not allowed to perform stand-in authorization for 3D-Secure transactions.
PostBridge Interface Specification Version 8Fields


Field 127.30 - 3D Secure Result
Format
ans1

Description

This is a Postilion specific addition to the ISO 8583 standard. Contains the Cardholder Authentication
Verification Value (CAVV) results code.
3D Secure result
blank (a space) CAVV not validated
    0 CAVV not validated due to erroneous data submitted
    1 CAVV failed validation
    2 CAVV passed validation
    3 CAVV validation could not be performed. Issuer attempt
    incomplete.
    4 CAVV validation could not be performed. Issuer system error.
    3D-Secure Result is passed through Postilion unaltered and saved in the database.

Please suggest.


--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
If you reply to this email, your message will be added to the discussion below:

chhil

unread,
Aug 30, 2019, 9:51:14 AM8/30/19
to jpos-...@googlegroups.com, ccavfo...@gmail.com
I suggest you look at other fields that have a similar description in the fields you have already defined and mimic them.

So find a field that has a b[some number] definition (maybe the pinblock) see how its defined and mimic it. Similarly, find a field that is ans[some numbers] in the postilion interface spec, and has been defined in your packager, use that to define the fields that  you are looking for definitions. 

-chhil

jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org

---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAOfY%3Dj8_ANF3tLbgtYbZvDf2%2B0TDVHHq%3DXsC%2BOGe_i0Ai%2BP94Q%40mail.gmail.com.

ccav tech

unread,
Sep 20, 2019, 8:22:12 AM9/20/19
to jPOS Users
Hi Chhil,

We are not having any switch background so we don't have so much idea about the working and the message format we are doing here everything on the basis of your support, so please help to resolve this issue as well. I know you

We are unable to decode the hex dump message of the sub field ,so request you to assist on the same,so that we can identify if the DE(127.10,127.29,127.30) is going or not in the request.
Below is the generated hexdump message and its decoded format till DE 123 :

HexDump Message:

30 31 30 30 F2 3C 44 81  08 E0 80 00 00 00 00 00  0100.<D.........
00 00 00 22 31 36 34 32  38 39 36 39 37 30 30 30  ..."164289697000
35 33 31 34 36 34 30 30  30 30 30 30 30 30 30 30  5314640000000000

30 30 30 32 30 30 30 30  30 33 32 36 30 37 33 36  0002000003260736
33 30 32 30 35 35 35 35  31 31 33 36 33 30 30 33  3020555511363003
32 36 32 31 30 36 35 36  39 31 30 31 32 30 38 30  2621065691012080

36 34 35 34 38 39 39 39  30 38 35 30 37 31 30 35  6454899908507105
37 39 30 30 30 30 35 30  30 34 31 30 30 30 30 30  7900005004100000
30 30 30 32 37 31 37 34  39 39 43 4F 4D 4D 45 52  0002717499COMMER
43 49 41 4C 38 33 36 30  44 75 62 61 69 41 45 41  CIAL8360DubaiAEA
45 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  E              
20 20 37 38 34 30 31 35  31 30 30 30 33 30 31 30    78401510003010
34 30 30 30 30 30 30 30  30 30 30 35 32 00 40 00  4000000000052.@.
0C 00 00 00 00 38 37 35  30 30 30 30 30 30 30 30  .....87500000000
30 30 30 30 30 30 30 30  30 32 30 30 00 00 01 01  000000000200....
07 17 02 20 20 00 00 00  52 17 02 00 00 00 00 00  ...  ...R.......
31                                                1


-------------------------------------------------------------------------------------

30 31 30 30 (0100)

F23C448108E080000000000000000022

11110010001111000100010010000001000010001110000010000000000000000000000000000000000000000000000000000000000000000000000000100010

1st Bit represents if the secondary bitmap is set or not and rest of all represent if that perticular field is present or not (1-Present and 0-Absent)

1110010001111000100010010000001000010001110000010000000000000000000000000000000000000000000000000000000000000000000000000100010


34323839363937303030353331343634 ->     4289697000531464

303030303030 ->  000000

30 30 30 3030 30 30 32 30 30 30 -> 30000000020000

30 33 32 36 30 37 33 36 33 30 -> 0326073630

32 30 35 35 35 35 -> 205555

31 31 33 36 33 30 -> 113630

30 3332 36 -> 0326

32 31 30 36 -> 2106

35 36  39 31 -> 5691

30 31 32   -> 012

30 38 -> 08

34 35 34 38 39 39 -> 454899

39  30 38 35 30 37 31 30 35 37 39 30 -> 908507105790

30 30 30 35 30  30 34 31 ->  00050041

30 30 30 30 30 30 30 30 32 37 31 37 34  39 39 -> 000000002717499

43 4F 4D 4D 45 52 43 49 41 4C 38 33 36 30  44 75 62 61 69 41 45 41 45 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  E 20 20 -> COMMERCIAL8360DubaiAEAE  

37 38 34 -> 784    


31 30 30 30 33 30 31 30 34 30 30 30 30 30 30 -> 100030104000000     


Also when we are using DE 127.10 & 127.29 both at a time we are not receiving any response but the same is working when we are sending them separately.

Please suggest on the same.

Below my jpos rule

<isomsg>
  <!-- org.jpos.iso.packager.GenericPackager[src/main/resources/basic1.xml] -->
  <field id="0" value="0100"/>
  <field id="2" value="4289697000531464"/>
  <field id="3" value="000000"/>
  <field id="4" value="000000020000"/>
  <field id="7" value="0326073630"/>
  <field id="11" value="205555"/>
  <field id="12" value="113630"/>
  <field id="13" value="0326"/>
  <field id="14" value="2106"/>
  <field id="18" value="5691"/>
  <field id="22" value="012"/>
  <field id="25" value="08"/>
  <field id="32" value="454899"/>
  <field id="37" value="908507105790"/>
  <field id="41" value="00050041"/>
  <field id="42" value="000000002717499"/>
  <field id="43" value="COMMERCIAL8360DubaiAEAE"/>
  <field id="49" value="784"/>
  <field id="123" value="100030104000000"/>
  <isomsg id="127">
    <field id="10" value="875"/>
    <field id="29" value="00000000000000000200\u0000\u0000\u0001\u0001\u0007\u0017\u0002  \u0000\u0000\u0000R\u0017\u0002\u0000\u0000\u0000\u0000\u0000"/>
    <field id="30" value="1"/>
  </isomsg>
</isomsg>
(17:46) Dheeraj: What about jposs rule
(17:46) vikas dhongade: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <isofield id="102" length="28" name="FROM ACCOUNT" class="org.jpos.iso.IFA_LLCHAR"/>
  <isofield

      id="123"
      length="999"
      name="RESERVED PRIVATE USE"
      class="org.jpos.iso.IFA_LLLCHAR"/>
  <isofieldpackager
      id="127"  
      length="999999"
      name="RESERVED PRIVATE USE"
      class="org.jpos.iso.IFA_LLLLLLBINARY"
      packager="org.jpos.iso.packager.GenericSubFieldPackager">
      <isofield
          id="0"
          length="0"
    <isofield
          id="29"
          length="40"
          name="3D Secure Data"
          class="org.jpos.iso.IFB_BINARY"/>
         
          <isofield
          id="30"
          length="1"
          name="3D Secure Result"
          class="org.jpos.iso.IF_CHAR"/>
  </isofieldpackager>
  </isopackager>

Construct code snippet for 127.29 field.
byte[] xidByte="00000000000000000200".getBytes();
byte[] cavvByte = Base64.decodeBase64("AAABAQcXAiAgAAAAUhcCAAAAAAA=".getBytes());
byte[] field127_29 = ISOUtil.concat( xidByte, 0,xidByte.length, cavvByte, 0, cavvByte.length );

Below is the ISO request:

<isomsg>
  <!-- org.jpos.iso.packager.GenericPackager[src/main/resources/basic1.xml] -->
  <field id="0" value="0100"/>
  <field id="2" value="4289697000531464"/>
  <field id="3" value="000000"/>
  <field id="4" value="000000020000"/>
  <field id="7" value="0326073630"/>
  <field id="11" value="205555"/>
  <field id="12" value="113630"/>
  <field id="13" value="0326"/>
  <field id="14" value="2106"/>
  <field id="18" value="5691"/>
  <field id="22" value="012"/>
  <field id="25" value="08"/>
  <field id="32" value="454899"/>
  <field id="37" value="908507105790"/>
  <field id="41" value="00050041"/>
  <field id="42" value="000000002717499"/>
  <field id="43" value="COMMERCIAL8360DubaiAEAE"/>
  <field id="49" value="784"/>
  <field id="123" value="100030104000000"/>
  <isomsg id="127">
    <field id="10" value="875"/>
    <field id="29" value="00000000000000000200\u0000\u0000\u0001\u0001\u0007\u0017\u0002  \u0000\u0000\u0000R\u0017\u0002\u0000\u0000\u0000\u0000\u0000"/>
    <field id="30" value="1"/>
  </isomsg>
</isomsg>













On Fri, Sep 6, 2019 at 6:24 PM ccav tech <ccavfo...@gmail.com> wrote:
Hi Chhil,

How to set bit map field through Java code.
I need to set it for the feild 127.29.
<isofield
          id="29"
          length="40"

          name="BITMAP"
          class="org.jpos.iso.IFB_BITMAP"/>

I am using below code but not able to set the value.

byte[] b = ISOUtil.bitSet2byte ((BitSet) c.getValue());
return ISOUtil.hexString(b).getBytes();

Could you please suggest on the same.

On Fri, Aug 30, 2019 at 7:21 PM chhil [via jPOS] <ml+s1045706...@n5.nabble.com> wrote:
I suggest you look at other fields that have a similar description in the fields you have already defined and mimic them.

So find a field that has a b[some number] definition (maybe the pinblock) see how its defined and mimic it. Similarly, find a field that is ans[some numbers] in the postilion interface spec, and has been defined in your packager, use that to define the fields that  you are looking for definitions. 

-chhil

On Fri, Aug 30, 2019 at 6:10 PM ccav tech <[hidden email]> wrote:
Dear Chhil,

Below are the spec details can you help us how do we configure below subfield of 127 field in our rule packager.

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
If you reply to this email, your message will be added to the discussion below:

chhil

unread,
Sep 20, 2019, 8:48:41 AM9/20/19
to jpos-...@googlegroups.com
I am going to be very blunt here. 

Learn jpos, you are building financial systems and not knowing jpos would give me zero confidence in systems you build. 

Who is going to support your production systems? Relying on free user group support is high risk. 

Do yourselves a favor use jpos professional services, 

I am not related or make a cent recommending them. 

Best of luck.

-chhil


jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org

---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAOfY%3Dj9D%3DKytecSDU-WGPvHf679WjixvY3zq9Rjyn1pm2yXnoA%40mail.gmail.com.

ccav tech

unread,
Sep 20, 2019, 9:09:18 AM9/20/19
to jPOS Users
Yes chhil we were thinking about the paid service only and  will surely go for the subscriptions once we get the approvals from our internal team.
But for now could you please assist on the query which we asked on last mail.
We are not able to decode the hex dump message for the subfields how we can do the same .Plz.

On Fri, Sep 20, 2019 at 6:18 PM chhil [via jPOS] <ml+s1045706...@n5.nabble.com> wrote:
I am going to be very blunt here. 

Learn jpos, you are building financial systems and not knowing jpos would give me zero confidence in systems you build. 

Who is going to support your production systems? Relying on free user group support is high risk. 

Do yourselves a favor use jpos professional services, 

I am not related or make a cent recommending them. 

Best of luck.

-chhil


--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: [hidden email]
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
If you reply to this email, your message will be added to the discussion below:

chhil

unread,
Sep 20, 2019, 9:25:44 AM9/20/19
to jpos-...@googlegroups.com
Follow this thread, it too is position related and somewhere in there there is a how to do hexdump analysis. 


-chhil

jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org

---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/CAOfY%3Dj_vCfg-GWK662jfA-F0LtwytKqKcLO4MiJ2hKsNM9TdSQ%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages