1
0

AbcsClientHandler.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import id.co.hanoman.config.Util;
  2. import id.co.hanoman.mbplugin.codex.Codex;
  3. import id.co.hanoman.mbplugin.codex.CodexContext;
  4. import org.apache.log4j.Logger;
  5. import java.io.InputStream;
  6. import java.io.OutputStream;
  7. import java.net.Socket;
  8. import java.nio.ByteBuffer;
  9. import java.util.HashMap;
  10. import java.util.Map;
  11. public class AbcsClientHandler {
  12. private static final Logger log = Logger.getLogger(AbcsClientHandler.class);
  13. public static void handle(Socket clientSocket, String codexName, Codex codexIn, Codex codexOut) throws Exception {
  14. try (InputStream inputStream = clientSocket.getInputStream();
  15. OutputStream outputStream = clientSocket.getOutputStream()) {
  16. ByteBuffer buffer = ByteBuffer.allocate(8192);
  17. int len;
  18. while ((len = inputStream.read(buffer.array(), buffer.position(), buffer.remaining())) > 0) {
  19. buffer.position(buffer.position() + len);
  20. buffer.flip();
  21. Map<String, Object> req = new HashMap<>();
  22. if (codexIn.decode(new CodexContext(), req, buffer)) {
  23. log.info("[" + codexName + "] DECODED REQUEST: " + Util.dumpBean(req));
  24. Map<String, Object> res = new HashMap<>();
  25. // res.put("dspTransactionCode", "9999");
  26. // res.put("dspMessageStatus", "SUCCESS");
  27. res.put("dspHeaderType", "*SOKI");
  28. res.put("dspDeviceName", " ");
  29. res.put("dspSocketNumber", "2");
  30. res.put("dspPortNumber", "9001");
  31. res.put("dspFiller1", "40");
  32. res.put("dspHeaderLength", "213");
  33. res.put("dspMessageLength", "349");
  34. res.put("dspVersionNumber", "0200");
  35. res.put("dspHeaderFormatId", "*DSP");
  36. res.put("dspDataFormatId", "ABCS ");
  37. res.put("dspSourceId", "*AXIS ");
  38. res.put("dspDestinationId", "DQAXISIN ");
  39. res.put("dspRoutingNumber", "00 ");
  40. res.put("dspMessageStatus", "/-------");
  41. res.put("dspBankIdNumber", "00000000000");
  42. res.put("dspNode", "00");
  43. res.put("dspExchangeId", "000000002F09001F4040C3D4D5E2C2D9F0F0F0F1");
  44. res.put("dspScenarioNumber", "AXISSYSTEMSDNBHD");
  45. res.put("dspTransactionCode", "0021");
  46. res.put("dspRetrievalReferenceNumber", "4766932509161528230525");
  47. res.put("dspAcquirerReferenceNumber", " ");
  48. res.put("dspTransmissionNumber", "0");
  49. res.put("dspNumberOfRecordsToBeLoaded", "10");
  50. res.put("dspNumberOfErrorsToBeLoaded", "10");
  51. res.put("dspUserId", "7200014 ");
  52. res.put("dspTerminalId", "70000003 ");
  53. res.put("dspSupervisorId", " ");
  54. res.put("dspMoreRecordIndicator", " ");
  55. res.put("dspCutOffIndicator", " ");
  56. res.put("dspUserData", " ");
  57. res.put("ICLEN", "98");
  58. res.put("ICHEAD", "*SOKR");
  59. res.put("ICRTRQ", "DQICRTEDC ");
  60. res.put("ICDEVN", "10.126.205.18 ");
  61. res.put("ICID", "05540");
  62. res.put("ICCOMQ", "DQAXISIN ");
  63. res.put("ICIPSF", "0");
  64. res.put("TMTIMIN", "152823");
  65. res.put("TMTXTYP", "T9997");
  66. res.put("ICRSV1", "0");
  67. res.put("ICEOM", "*EOM");
  68. res.put("tellerID", "7200014");
  69. res.put("sequenceNumber", "1436630");
  70. res.put("responseLength", "54");
  71. res.put("responseCode", "F1");
  72. res.put("responseHeader", "F1");
  73. res.put("TLXMNE", "ATM");
  74. res.put("SNAME", "NASABAH S055848 ");
  75. res.put("ACC", "16556354489");
  76. res.put("AMT1", "165563544.89");
  77. res.put("AMT2", "165563544.89");
  78. res.put("abcsResponses", "F9 E0 F4");
  79. res.put("msgCode", "AXISSYSTEMSDNBHD.0000000021");
  80. res.put("responseCode", "000");
  81. res.put("isF2code", "000");
  82. CodexContext cc = new CodexContext();
  83. codexOut.encode(cc, res);
  84. byte[] responseBytes = cc.toByteArray();
  85. outputStream.write(responseBytes);
  86. outputStream.flush();
  87. log.info("[" + codexName + "] SENT RESPONSE: " + Util.dump(responseBytes, 0, responseBytes.length));
  88. }
  89. buffer.compact();
  90. }
  91. }
  92. }
  93. }