diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCFaceFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCFaceFilter.java index d2b7d4f..78e3c70 100644 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCFaceFilter.java +++ b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCFaceFilter.java @@ -16,6 +16,7 @@ import com.eactive.eai.adapter.AdapterManager; import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; import com.eactive.eai.common.property.PropGroupVO; import com.eactive.eai.common.property.PropManager; +import com.eactive.eai.common.server.EAIServerManager; import com.eactive.eai.common.util.Logger; @@ -28,6 +29,12 @@ public class KFTCFaceFilter implements HttpClientAdapterFilter, HttpAdapterServi public static final String B_ORG_CODE = "org_code"; public static final String B_TRANSACTION_ID = "transaction_id"; public static final String B_REQUEST_DATETIME = "request_datetime"; + public static String instId = null; + + static { + EAIServerManager eaiServerManager = EAIServerManager.getInstance(); + instId = eaiServerManager.getInstId(); + } @SuppressWarnings({ "unchecked" }) @Override @@ -47,7 +54,12 @@ public class KFTCFaceFilter implements HttpClientAdapterFilter, HttpAdapterServi } String request_datetime = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); - String transaction_id = orgCode + request_datetime + "1" + RandomStringUtils.random(4, true, true).toUpperCase(); + String reqDate = new SimpleDateFormat("yyMMdd").format(new Date()); + String reqTime = new SimpleDateFormat("HHmmss").format(new Date()); + // 기관코드(3) + 요청일자(6) -- 금결원 표준화 항목, 고정 9자리. + // 요청시간(6) + 인스턴스ID(2) + RandomString(3) -- 기관별 생성 거래고유번호(11자리) + // 기관코드(3) + 요청일자(6) + 요청시간(6) + 인스턴스ID(2) + RandomString(3) -- 20자리. + String transaction_id = orgCode + reqDate + reqTime + instId + RandomStringUtils.random(3, true, true).toUpperCase(); Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); if (filterHeaders == null) { diff --git a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCP2PFilter.java b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCP2PFilter.java index 92c0f36..270b2e6 100644 --- a/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCP2PFilter.java +++ b/src/main/java/com/eactive/eai/custom/kjb/adapter/http/client/filter/KFTCP2PFilter.java @@ -11,6 +11,7 @@ import org.apache.commons.lang3.RandomStringUtils; import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; import com.eactive.eai.common.property.PropGroupVO; import com.eactive.eai.common.property.PropManager; +import com.eactive.eai.common.server.EAIServerManager; import com.eactive.eai.common.util.Logger; @@ -22,21 +23,29 @@ public class KFTCP2PFilter implements HttpClientAdapterFilter, HttpAdapterServic public static final String H_ORG_CODE = "org_code"; public static final String H_TRX_NO = "api_trx_no"; public static final String H_TRX_DTM = "api_trx_dtm"; + public static String instId = null; + + static { + EAIServerManager eaiServerManager = EAIServerManager.getInstance(); + instId = eaiServerManager.getInstId(); + } @Override public Object doPreFilter(String adptGrpName, String adptName, Properties prop, Object message, Properties tempProp) throws Exception { logger.debug("KFTCP2PFilter] PreFilter Processing Start!!"); - String orgCode = "034"; // 광주은행 행코드 + String orgCode = "D210400012"; // 광주은행 개발 기관코드(운영: K210800020) PropGroupVO propGroupVo = PropManager.getInstance().getPropGroupVO(KJB_HEADER); if (propGroupVo != null) { orgCode = propGroupVo.getProperty(PROP_PREFIX + "." + H_ORG_CODE); } - - String apiTrxDtm = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); - String apiTrxNo = orgCode + apiTrxDtm + "1" + RandomStringUtils.random(5, true, true).toUpperCase(); + + String apiTrxDtm = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); + String apiTrxTm = new SimpleDateFormat("HHmmss").format(new Date()); + // 기관코드(10) + 인스턴스ID(2) + 일시(6) + RandomString(2) -- 총 20자리 + String apiTrxNo = orgCode + instId + apiTrxTm + RandomStringUtils.random(2, true, true).toUpperCase(); Properties filterHeaders = (Properties) tempProp.get("FILTERHEADER"); if (filterHeaders == null) {