I am running a test where i am doing a sale for card with chip as below:
PostPackager pkg = new PostPackager();
Logger l = new Logger();
l.addListener(new SimpleLogListener());
pkg.setLogger(l, "");
ISOMsg isoMsg = new ISOMsg();
isoMsg.setPackager(pkg);
isoMsg.setMTI("0200");//MTI
isoMsg.set(2, "5614810000000033"/*card.getPan()*/);
isoMsg.set(3, "000000");
isoMsg.set(4, ISOUtil.padleft(request.getAmount().toString(), 12, '0'));
isoMsg.set(7, "1205234924"/*ISODate.getDateTime(new Date())*/);
isoMsg.set(11, "164177"/*ISOUtil.padleft(String.valueOf(System.currentTimeMillis() % 1000000), 6, '0')*/);
isoMsg.set(12, "234924"/*ISODate.formatDate(new Date(), "HHmmss")*/);
isoMsg.set(13, "1205"/*ISODate.formatDate(new Date(), "MMdd")*/);
isoMsg.set(14, "2201"/*card.getExp()*/); //Card expiry date
isoMsg.set(15, "1205"/*ISODate.formatDate(new Date(), "MMdd")*/);
isoMsg.set(18, "4789"/*request.getMerchantCategory()*/);
isoMsg.set(19, "716");
isoMsg.set(22, "051");
isoMsg.set(23, "001");
isoMsg.set(25, "00");
isoMsg.set(26, "12");
isoMsg.set(28, "D00000005");
isoMsg.set(32, "639312");
isoMsg.set(35, "5614810000000033D220122610000369"/*request.getTrack2()*/);
isoMsg.set(37, "000000033334"/*rrn*/);//Retrieval Reference Number <---- -->Unique for every transaction
isoMsg.set(40, "226"/*card.getServiceCode()*/); //Card Acceptor Terminal ID
isoMsg.set(41, "MBZ00010"/*request.getTerminalId()*/); //Card Acceptor Terminal ID
isoMsg.set(42, "MBZ000007000002"/*request.getMerchantId()*/); //Card Acceptor ID Code/MERCHANT
isoMsg.set(43, "PETROTRADE HARARE ZW "/*request.getMerchantName()*/); //Card Acceptor Name Location
isoMsg.set(49, "932"/*request.getCurrencyCode()*/); //Currency Code, Transaction
// isoMsg.set(52, ISOUtil.strpad(pinBlock, 16)); //PIN b8, hex 16
isoMsg.set(59, ",PETROTRADE | MBZ00010000007"/* generateEchoData(rrn, card.getPan())*/); //Echo Data--how is this generated
if (request.getCaptureType().name().equalsIgnoreCase("SWIPE")) {
isoMsg.set(123, "21010121014C101"); //POS Data Code
isoMsg.set("127.002", "02000000051207091508134109000005");//Structured Data
} else {
isoMsg.set(123, "51010151014C101"); //POS Data Code
isoMsg.set("127.002", "02000000071201095810133509000007");//Structured Data
isoMsg.set("127.025",/*generateIccData(request)*/"<?xml version=\"1.0\" encoding=\"UTF-8\"?> <IccData><IccRequest><AmountAuthorized>000000000100</AmountAuthorized><AmountOther>000000000000</AmountOther><ApplicationIdentifier>A0000007790000</ApplicationIdentifier><ApplicationInterchangeProfile>1800</ApplicationInterchangeProfile><ApplicationTransactionCounter>0009</ApplicationTransactionCounter><Cryptogram>CCAAF7C706EB1268</Cryptogram><CryptogramInformationData>80</CryptogramInformationData><InterfaceDeviceSerialNumber>>12345678</InterfaceDeviceSerialNumber><IssuerApplicationData>0FA501A002F0000000000000000000000F010000000000000000000000000000</IssuerApplicationData><TerminalCapabilities>E0F9C8</TerminalCapabilities><TerminalCountryCode>263</TerminalCountryCode><TerminalType>22</TerminalType><TerminalVerificationResult>8080048000</TerminalVerificationResult><TransactionCurrencyCode>932</TransactionCurrencyCode><TransactionDate>180817</TransactionDate><TransactionSequenceCounter>00000000</TransactionSequenceCounter><TransactionType>00</TransactionType><UnpredictableNumber>8CE13D5D</UnpredictableNumber></IccRequest></IccData>");
}//ISOUtil.strpad(generateIccData(request), generateIccData(request).length())
isoMsg.pack();
return isoMsg;
I am sending this isoMsg to Postillion and I am getting the response below:
A bitmap message (postilion.realtime.postbridge.IccDataBitmap) could not be unpacked, because of an error while unpacking field number bitset (None b ) at offset 0. When the error occurred, the bitmap looked like this:
binary data
0000(0000) 31 37 49 63 63 44 61 74 61 34 31 30 38 35 3c 3f 17IccData41085<?
0016(0010) 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 xml version="1.0
0032(0020) 22 20 65 6e 63 6f 64 69 6e 67 3d 22 55 54 46 2d " encoding="UTF-
0048(0030) 38 22 3f 3e 20 3c 49 63 63 44 61 74 61 3e 3c 49 8"?> <IccData><I
0064(0040) 63 63 52 65 71 75 65 73 74 3e 3c 41 6d 6f 75 6e ccRequest><Amoun
0080(0050) 74 41 75 74 68 6f 72 69 7a 65 64 3e 30 30 30 30 tAuthorized>0000
0096(0060) 30 30 30 30 30 31 30 30 3c 2f 41 6d 6f 75 6e 74 00000100</Amount
0112(0070) 41 75 74 68 6f 72 69 7a 65 64 3e 3c 41 6d 6f 75 Authorized><Amou
0128(0080) 6e 74 4f 74 68 65 72 3e 30 30 30 30 30 30 30 30 ntOther>00000000
0144(0090) 30 30 30 30 3c 2f 41 6d 6f 75 6e 74 4f 74 68 65 0000</AmountOthe
0160(00a0) 72 3e 3c 41 70 70 6c 69 63 61 74 69 6f 6e 49 64 r><ApplicationId
0176(00b0) 65 6e 74 69 66 69 65 72 3e 41 30 30 30 30 30 30 entifier>A000000
0192(00c0) 37 37 39 30 30 30 30 3c 2f 41 70 70 6c 69 63 61 7790000</Applica
0208(00d0) 74 69 6f 6e 49 64 65 6e 74 69 66 69 65 72 3e 3c tionIdentifier><
0224(00e0) 41 70 70 6c 69 63 61 74 69 6f 6e 49 6e 74 65 72 ApplicationInter
0240(00f0) 63 68 61 6e 67 65 50 72 6f 66 69 6c 65 3e 31 38 changeProfile>18
0256(0100) 30 30 3c 2f 41 70 70 6c 69 63 61 74 69 6f 6e 49 00</ApplicationI
0272(0110) 6e 74 65 72 63 68 61 6e 67 65 50 72 6f 66 69 6c nterchangeProfil
0288(0120) 65 3e 3c 41 70 70 6c 69 63 61 74 69 6f 6e 54 72 e><ApplicationTr
0304(0130) 61 6e 73 61 63 74 69 6f 6e 43 6f 75 6e 74 65 72 ansactionCounter
0320(0140) 3e 30 30 30 39 3c 2f 41 70 70 6c 69 63 61 74 69 >0009</Applicati
0336(0150) 6f 6e 54 72 61 6e 73 61 63 74 69 6f 6e 43 6f 75 onTransactionCou
0352(0160) 6e 74 65 72 3e 3c 43 72 79 70 74 6f 67 72 61 6d nter><Cryptogram
0368(0170) 3e 43 43 41 41 46 37 43 37 30 36 45 42 31 32 36 >CCAAF7C706EB126
0384(0180) 38 3c 2f 43 72 79 70 74 6f 67 72 61 6d 3e 3c 43 8</Cryptogram><C
0400(0190) 72 79 70 74 6f 67 72 61 6d 49 6e 66 6f 72 6d 61 ryptogramInforma
0416(01a0) 74 69 6f 6e 44 61 74 61 3e 38 30 3c 2f 43 72 79 tionData>80</Cry
0432(01b0) 70 74 6f 67 72 61 6d 49 6e 66 6f 72 6d 61 74 69 ptogramInformati
0448(01c0) 6f 6e 44 61 74 61 3e 3c 49 6e 74 65 72 66 61 63 onData><Interfac
0464(01d0) 65 44 65 76 69 63 65 53 65 72 69 61 6c 4e 75 6d eDeviceSerialNum
0480(01e0) 62 65 72 3e 3e 31 32 33 34 35 36 37 38 3c 2f 49 ber>>12345678</I
0496(01f0) 6e 74 65 72 66 61 63 65 44 65 76 69 63 65 53 65 nterfaceDeviceSe
0512(0200) 72 69 61 6c 4e 75 6d 62 65 72 3e 3c 49 73 73 75 rialNumber><Issu
0528(0210) 65 72 41 70 70 6c 69 63 61 74 69 6f 6e 44 61 74 erApplicationDat
0544(0220) 61 3e 30 46 41 35 30 31 41 30 30 32 46 30 30 30 a>0FA501A002F000
0560(0230) 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0000000000000000
0576(0240) 30 30 30 46 30 31 30 30 30 30 30 30 30 30 30 30 000F010000000000
0592(0250) 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0000000000000000
0608(0260) 30 30 3c 2f 49 73 73 75 65 72 41 70 70 6c 69 63 00</IssuerApplic
0624(0270) 61 74 69 6f 6e 44 61 74 61 3e 3c 54 65 72 6d 69 ationData><Termi
0640(0280) 6e 61 6c 43 61 70 61 62 69 6c 69 74 69 65 73 3e nalCapabilities>
0656(0290) 45 30 46 39 43 38 3c 2f 54 65 72 6d 69 6e 61 6c E0F9C8</Terminal
0672(02a0) 43 61 70 61 62 69 6c 69 74 69 65 73 3e 3c 54 65 Capabilities><Te
0688(02b0) 72 6d 69 6e 61 6c 43 6f 75 6e 74 72 79 43 6f 64 rminalCountryCod
0704(02c0) 65 3e 32 36 33 3c 2f 54 65 72 6d 69 6e 61 6c 43 e>263</TerminalC
0720(02d0) 6f 75 6e 74 72 79 43 6f 64 65 3e 3c 54 65 72 6d ountryCode><Term
0736(02e0) 69 6e 61 6c 54 79 70 65 3e 32 32 3c 2f 54 65 72 inalType>22</Ter
0752(02f0) 6d 69 6e 61 6c 54 79 70 65 3e 3c 54 65 72 6d 69 minalType><Termi
0768(0300) 6e 61 6c 56 65 72 69 66 69 63 61 74 69 6f 6e 52 nalVerificationR
0784(0310) 65 73 75 6c 74 3e 38 30 38 30 30 34 38 30 30 30 esult>8080048000
0800(0320) 3c 2f 54 65 72 6d 69 6e 61 6c 56 65 72 69 66 69 </TerminalVerifi
0816(0330) 63 61 74 69 6f 6e 52 65 73 75 6c 74 3e 3c 54 72 cationResult><Tr
0832(0340) 61 6e 73 61 63 74 69 6f 6e 43 75 72 72 65 6e 63 ansactionCurrenc
0848(0350) 79 43 6f 64 65 3e 39 33 32 3c 2f 54 72 61 6e 73 yCode>932</Trans
0864(0360) 61 63 74 69 6f 6e 43 75 72 72 65 6e 63 79 43 6f actionCurrencyCo
0880(0370) 64 65 3e 3c 54 72 61 6e 73 61 63 74 69 6f 6e 44 de><TransactionD
0896(0380) 61 74 65 3e 31 38 30 38 31 37 3c 2f 54 72 61 6e ate>180817</Tran
0912(0390) 73 61 63 74 69 6f 6e 44 61 74 65 3e 3c 54 72 61 sactionDate><Tra
0928(03a0) 6e 73 61 63 74 69 6f 6e 53 65 71 75 65 6e 63 65 nsactionSequence
0944(03b0) 43 6f 75 6e 74 65 72 3e 30 30 30 30 30 30 30 30 Counter>00000000
0960(03c0) 3c 2f 54 72 61 6e 73 61 63 74 69 6f 6e 53 65 71 </TransactionSeq
0976(03d0) 75 65 6e 63 65 43 6f 75 6e 74 65 72 3e 3c 54 72 uenceCounter><Tr
0992(03e0) 61 6e 73 61 63 74 69 6f 6e 54 79 70 65 3e 30 30 ansactionType>00
1008(03f0) 3c 2f 54 72 61 6e 73 61 63 74 69 6f 6e 54 79 70 </TransactionTyp
1024(0400) 65 3e 3c 55 6e 70 72 65 64 69 63 74 61 62 6c 65 e><Unpredictable
1040(0410) 4e 75 6d 62 65 72 3e 38 43 45 31 33 44 35 44 3c Number>8CE13D5D<
1056(0420) 2f 55 6e 70 72 65 64 69 63 74 61 62 6c 65 4e 75 /UnpredictableNu
1072(0430) 6d 62 65 72 3e 3c 2f 49 63 63 52 65 71 75 65 73 mber></IccReques
1088(0440) 74 3e 3c 2f 49 63 63 44 61 74 61 3e t></IccData>
stack trace
Postilion exception: [postilion.realtime.sdk.message.bitmap.XBitmapUnableToExtract]
Description: A bitmap message (postilion.realtime.postbridge.IccDataBitmap) could not be unpacked, because of an error while unpacking field number bitset (None b ) at offset 0. When the error occurred, the bitmap looked like this:
ID: [301]
Data: [none]
If i do hexdump of the message I get:
30323030F23E66D129E0802000000000000000223136353631343831303030303030303033333030303030303030303030303030303130303132303532333439323431363431373732333439323431323035323230313132303534373839373136303531303031303031324430303030303030353036363339333132333235363134383130303030303030303333443232303132323631303030303336393030303030303033333333343232364D425A30303031304D425A303030303037303030303032504554524F545241444520484152415245205A5720202020202020202020202020202020202020203933323032382C504554524F5452414445207C204D425A30303031303030303030373031353531303130313531303134433130313030313134364000008000000000333230323030303030303037313230313039353831303133333530393030303030373131303031374963634461746134313038353C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E203C496363446174613E3C496363526571756573743E3C416D6F756E74417574686F72697A65643E3030303030303030303130303C2F416D6F756E74417574686F72697A65643E3C416D6F756E744F746865723E3030303030303030303030303C2F416D6F756E744F746865723E3C4170706C69636174696F6E4964656E7469666965723E41303030303030373739303030303C2F4170706C69636174696F6E4964656E7469666965723E3C4170706C69636174696F6E496E7465726368616E676550726F66696C653E313830303C2F4170706C69636174696F6E496E7465726368616E676550726F66696C653E3C4170706C69636174696F6E5472616E73616374696F6E436F756E7465723E303030393C2F4170706C69636174696F6E5472616E73616374696F6E436F756E7465723E3C43727970746F6772616D3E434341414637433730364542313236383C2F43727970746F6772616D3E3C43727970746F6772616D496E666F726D6174696F6E446174613E38303C2F43727970746F6772616D496E666F726D6174696F6E446174613E3C496E7465726661636544657669636553657269616C4E756D6265723E3E31323334353637383C2F496E7465726661636544657669636553657269616C4E756D6265723E3C4973737565724170706C69636174696F6E446174613E304641353031413030324630303030303030303030303030303030303030303030463031303030303030303030303030303030303030303030303030303030303C2F4973737565724170706C69636174696F6E446174613E3C5465726D696E616C4361706162696C69746965733E4530463943383C2F5465726D696E616C4361706162696C69746965733E3C5465726D696E616C436F756E747279436F64653E3236333C2F5465726D696E616C436F756E747279436F64653E3C5465726D696E616C547970653E32323C2F5465726D696E616C547970653E3C5465726D696E616C566572696669636174696F6E526573756C743E383038303034383030303C2F5465726D696E616C566572696669636174696F6E526573756C743E3C5472616E73616374696F6E43757272656E6379436F64653E3933323C2F5472616E73616374696F6E43757272656E6379436F64653E3C5472616E73616374696F6E446174653E3138303831373C2F5472616E73616374696F6E446174653E3C5472616E73616374696F6E53657175656E6365436F756E7465723E30303030303030303C2F5472616E73616374696F6E53657175656E6365436F756E7465723E3C5472616E73616374696F6E547970653E30303C2F5472616E73616374696F6E547970653E3C556E7072656469637461626C654E756D6265723E38434531334435443C2F556E7072656469637461626C654E756D6265723E3C2F496363526571756573743E3C2F496363446174613E
whose bitmap is as follows:
<bitmap>{1, 2, 3, 4, 7, 11, 12, 13, 14, 15, 18, 19, 22, 23, 25, 26, 28, 32, 35, 37, 40, 41, 42, 43, 49, 59, 123, 127}</bitmap>
<unpack fld="2" packager="org.jpos.iso.IFA_LLNUM">
<!-- PAN - PRIMARY ACCOUNT NUMBER -->
<value>5614810000000033</value>
</unpack>
<unpack fld="3" packager="org.jpos.iso.IFA_NUMERIC">
<!-- PROCESSING CODE -->
<value>000000</value>
</unpack>
<unpack fld="4" packager="org.jpos.iso.IFA_NUMERIC">
<!-- AMOUNT, TRANSACTION -->
<value>000000000100</value>
</unpack>
<unpack fld="7" packager="org.jpos.iso.IFA_NUMERIC">
<!-- TRANSMISSION DATE AND TIME -->
<value>1205234924</value>
</unpack>
<unpack fld="11" packager="org.jpos.iso.IFA_NUMERIC">
<!-- SYSTEM TRACE AUDIT NUMBER -->
<value>164177</value>
</unpack>
<unpack fld="12" packager="org.jpos.iso.IFA_NUMERIC">
<!-- TIME, LOCAL TRANSACTION -->
<value>234924</value>
</unpack>
<unpack fld="13" packager="org.jpos.iso.IFA_NUMERIC">
<!-- DATE, LOCAL TRANSACTION -->
<value>1205</value>
</unpack>
<unpack fld="14" packager="org.jpos.iso.IFA_NUMERIC">
<!-- DATE, EXPIRATION -->
<value>2201</value>
</unpack>
<unpack fld="15" packager="org.jpos.iso.IFA_NUMERIC">
<!-- DATE, SETTLEMENT -->
<value>1205</value>
</unpack>
<unpack fld="18" packager="org.jpos.iso.IFA_NUMERIC">
<!-- MERCHANTS TYPE -->
<value>4789</value>
</unpack>
<unpack fld="19" packager="org.jpos.iso.IFA_NUMERIC">
<!-- ACQUIRING INSTITUTION COUNTRY CODE -->
<value>716</value>
</unpack>
<unpack fld="22" packager="org.jpos.iso.IFA_NUMERIC">
<!-- POINT OF SERVICE ENTRY MODE -->
<value>051</value>
</unpack>
<unpack fld="23" packager="org.jpos.iso.IFA_NUMERIC">
<!-- CARD SEQUENCE NUMBER -->
<value>001</value>
</unpack>
<unpack fld="25" packager="org.jpos.iso.IFA_NUMERIC">
<!-- POINT OF SERVICE CONDITION CODE -->
<value>00</value>
</unpack>
<unpack fld="26" packager="org.jpos.iso.IFA_NUMERIC">
<!-- POINT OF SERVICE PIN CAPTURE CODE -->
<value>12</value>
</unpack>
<unpack fld="28" packager="org.jpos.iso.IFA_AMOUNT">
<!-- AMOUNT, TRANSACTION FEE -->
<value>D00000005</value>
</unpack>
<unpack fld="32" packager="org.jpos.iso.IFA_LLNUM">
<!-- ACQUIRING INSTITUTION IDENT CODE -->
<value>639312</value>
</unpack>
<unpack fld="35" packager="org.jpos.iso.IFA_LLNUM">
<!-- TRACK 2 DATA -->
<value>5614810000000033D220122610000369</value>
</unpack>
<unpack fld="37" packager="org.jpos.iso.IF_CHAR">
<!-- RETRIEVAL REFERENCE NUMBER -->
<value>000000033334</value>
</unpack>
<unpack fld="40" packager="org.jpos.iso.IF_CHAR">
<!-- SERVICE RESTRICTION CODE -->
<value>226</value>
</unpack>
<unpack fld="41" packager="org.jpos.iso.IF_CHAR">
<!-- CARD ACCEPTOR TERMINAL IDENTIFICACION -->
<value>MBZ00010</value>
</unpack>
<unpack fld="42" packager="org.jpos.iso.IF_CHAR">
<!-- CARD ACCEPTOR IDENTIFICATION CODE -->
<value>MBZ000007000002</value>
</unpack>
<unpack fld="43" packager="org.jpos.iso.IF_CHAR">
<!-- CARD ACCEPTOR NAME/LOCATION -->
<value>PETROTRADE HARARE ZW </value>
</unpack>
<unpack fld="49" packager="org.jpos.iso.IF_CHAR">
<!-- CURRENCY CODE, TRANSACTION -->
<value>932</value>
</unpack>
<unpack fld="59" packager="org.jpos.iso.IFA_LLLCHAR">
<!-- RESERVED NATIONAL -->
<value>,PETROTRADE | MBZ00010000007</value>
</unpack>
<unpack fld="123" packager="org.jpos.iso.IFA_LLLCHAR">
<!-- RESERVED PRIVATE USE -->
<value>51010151014C101</value>
</unpack>
<unpack fld="127" packager="org.jpos.iso.ISOMsgFieldPackager">
<!-- RESERVED PRIVATE USE -->
<isomsg id="127">
<!-- org.jpos.iso.packager.GenericSubFieldPackager -->
<field id="2" value="02000000071201095810133509000007"/>
<field id="25"><![CDATA[17IccData41085<?xml version="1.0" encoding="UTF-8"?> <IccData><IccRequest><AmountAuthorized>000000000100</AmountAuthorized><AmountOther>000000000000</AmountOther><ApplicationIdentifier>A0000007790000</ApplicationIdentifier><ApplicationInterchangeProfile>1800</ApplicationInterchangeProfile><ApplicationTransactionCounter>0009</ApplicationTransactionCounter><Cryptogram>CCAAF7C706EB1268</Cryptogram><CryptogramInformationData>80</CryptogramInformationData><InterfaceDeviceSerialNumber>>12345678</InterfaceDeviceSerialNumber><IssuerApplicationData>0FA501A002F0000000000000000000000F010000000000000000000000000000</IssuerApplicationData><TerminalCapabilities>E0F9C8</TerminalCapabilities><TerminalCountryCode>263</TerminalCountryCode><TerminalType>22</TerminalType><TerminalVerificationResult>8080048000</TerminalVerificationResult><TransactionCurrencyCode>932</TransactionCurrencyCode><TransactionDate>180817</TransactionDate><TransactionSequenceCounter>00000000</TransactionSequenceCounter><TransactionType>00</TransactionType><UnpredictableNumber>8CE13D5D</UnpredictableNumber></IccRequest></IccData>]]></field>
</isomsg>
</unpack>
</unpack>
</log>
So i am not sure where I am going wrong.