| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import id.co.hanoman.config.Util;
- import id.co.hanoman.mbplugin.codex.Codex;
- import id.co.hanoman.mbplugin.codex.CodexContext;
- import org.apache.log4j.Logger;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.net.Socket;
- import java.nio.ByteBuffer;
- import java.util.HashMap;
- import java.util.Map;
- public class AbcsClientHandler {
- private static final Logger log = Logger.getLogger(AbcsClientHandler.class);
- public static void handle(Socket clientSocket, String codexName, Codex codexIn, Codex codexOut) throws Exception {
- try (InputStream inputStream = clientSocket.getInputStream();
- OutputStream outputStream = clientSocket.getOutputStream()) {
- ByteBuffer buffer = ByteBuffer.allocate(8192);
- int len;
- while ((len = inputStream.read(buffer.array(), buffer.position(), buffer.remaining())) > 0) {
- buffer.position(buffer.position() + len);
- buffer.flip();
- Map<String, Object> req = new HashMap<>();
- if (codexIn.decode(new CodexContext(), req, buffer)) {
- log.info("[" + codexName + "] DECODED REQUEST: " + Util.dumpBean(req));
- Map<String, Object> res = new HashMap<>();
- // res.put("dspTransactionCode", "9999");
- // res.put("dspMessageStatus", "SUCCESS");
- res.put("dspHeaderType", "*SOKI");
- res.put("dspDeviceName", " ");
- res.put("dspSocketNumber", "2");
- res.put("dspPortNumber", "9001");
- res.put("dspFiller1", "40");
- res.put("dspHeaderLength", "213");
- res.put("dspMessageLength", "349");
- res.put("dspVersionNumber", "0200");
- res.put("dspHeaderFormatId", "*DSP");
- res.put("dspDataFormatId", "ABCS ");
- res.put("dspSourceId", "*AXIS ");
- res.put("dspDestinationId", "DQAXISIN ");
- res.put("dspRoutingNumber", "00 ");
- res.put("dspMessageStatus", "/-------");
- res.put("dspBankIdNumber", "00000000000");
- res.put("dspNode", "00");
- res.put("dspExchangeId", "000000002F09001F4040C3D4D5E2C2D9F0F0F0F1");
- res.put("dspScenarioNumber", "AXISSYSTEMSDNBHD");
- res.put("dspTransactionCode", "0021");
- res.put("dspRetrievalReferenceNumber", "4766932509161528230525");
- res.put("dspAcquirerReferenceNumber", " ");
- res.put("dspTransmissionNumber", "0");
- res.put("dspNumberOfRecordsToBeLoaded", "10");
- res.put("dspNumberOfErrorsToBeLoaded", "10");
- res.put("dspUserId", "7200014 ");
- res.put("dspTerminalId", "70000003 ");
- res.put("dspSupervisorId", " ");
- res.put("dspMoreRecordIndicator", " ");
- res.put("dspCutOffIndicator", " ");
- res.put("dspUserData", " ");
- res.put("ICLEN", "98");
- res.put("ICHEAD", "*SOKR");
- res.put("ICRTRQ", "DQICRTEDC ");
- res.put("ICDEVN", "10.126.205.18 ");
- res.put("ICID", "05540");
- res.put("ICCOMQ", "DQAXISIN ");
- res.put("ICIPSF", "0");
- res.put("TMTIMIN", "152823");
- res.put("TMTXTYP", "T9997");
- res.put("ICRSV1", "0");
- res.put("ICEOM", "*EOM");
- res.put("tellerID", "7200014");
- res.put("sequenceNumber", "1436630");
- res.put("responseLength", "54");
- res.put("responseCode", "F1");
- res.put("responseHeader", "F1");
- res.put("TLXMNE", "ATM");
- res.put("SNAME", "NASABAH S055848 ");
- res.put("ACC", "16556354489");
- res.put("AMT1", "165563544.89");
- res.put("AMT2", "165563544.89");
- res.put("abcsResponses", "F9 E0 F4");
- res.put("msgCode", "AXISSYSTEMSDNBHD.0000000021");
- res.put("responseCode", "000");
- res.put("isF2code", "000");
- CodexContext cc = new CodexContext();
- codexOut.encode(cc, res);
- byte[] responseBytes = cc.toByteArray();
- outputStream.write(responseBytes);
- outputStream.flush();
- log.info("[" + codexName + "] SENT RESPONSE: " + Util.dump(responseBytes, 0, responseBytes.length));
- }
- buffer.compact();
- }
- }
- }
- }
|