|
@@ -1,5 +1,6 @@
|
|
|
package com.style24.front.biz.thirdparty;
|
|
package com.style24.front.biz.thirdparty;
|
|
|
|
|
|
|
|
|
|
+import Kisinfo.Check.IPIN2Client;
|
|
|
import NiceID.Check.CPClient;
|
|
import NiceID.Check.CPClient;
|
|
|
import com.gagaframework.web.parameter.GagaMap;
|
|
import com.gagaframework.web.parameter.GagaMap;
|
|
|
import com.gagaframework.web.util.GagaDateUtil;
|
|
import com.gagaframework.web.util.GagaDateUtil;
|
|
@@ -31,6 +32,8 @@ public class NiceCertify {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private Environment env;
|
|
private Environment env;
|
|
|
|
|
|
|
|
|
|
+ public static final String PROTOCOL = "http://";
|
|
|
|
|
+
|
|
|
private String niceId; // 나이스휴대폰인증ID
|
|
private String niceId; // 나이스휴대폰인증ID
|
|
|
private String nicePwd; // 나이스휴대폰인증비밀번호
|
|
private String nicePwd; // 나이스휴대폰인증비밀번호
|
|
|
private String niceCallback; // 나이스휴대폰인증콜백URL
|
|
private String niceCallback; // 나이스휴대폰인증콜백URL
|
|
@@ -67,7 +70,7 @@ public class NiceCertify {
|
|
|
log.info("sRequestNo: {}", sRequestNo);
|
|
log.info("sRequestNo: {}", sRequestNo);
|
|
|
TscSession.setAttribute("REQ_SEQ", sRequestNo);
|
|
TscSession.setAttribute("REQ_SEQ", sRequestNo);
|
|
|
|
|
|
|
|
- String callback = GagaFileUtil.getConcatenationPath("http://" + TsfSession.getHttpServletRequest().getServerName(), niceCallback);
|
|
|
|
|
|
|
+ String callback = GagaFileUtil.getConcatenationPath(PROTOCOL + TsfSession.getHttpServletRequest().getServerName(), niceCallback);
|
|
|
log.info("niceCallback: {}", niceCallback);
|
|
log.info("niceCallback: {}", niceCallback);
|
|
|
|
|
|
|
|
String sAuthType = "M"; // 없으면 기본 선택화면, M: 휴대폰, C: 신용카드, X: 공인인증서
|
|
String sAuthType = "M"; // 없으면 기본 선택화면, M: 휴대폰, C: 신용카드, X: 공인인증서
|
|
@@ -95,21 +98,22 @@ public class NiceCertify {
|
|
|
if (iRtn != 0) { // 실패했으면
|
|
if (iRtn != 0) { // 실패했으면
|
|
|
String errorMsg = "[" + iRtn + "]";
|
|
String errorMsg = "[" + iRtn + "]";
|
|
|
if ( iRtn == -1) {
|
|
if ( iRtn == -1) {
|
|
|
- errorMsg = "암호화 시스템 에러입니다.";
|
|
|
|
|
|
|
+ errorMsg += "암호화 시스템 에러입니다.";
|
|
|
}
|
|
}
|
|
|
else if( iRtn == -2) {
|
|
else if( iRtn == -2) {
|
|
|
- errorMsg = "암호화 처리오류입니다.";
|
|
|
|
|
|
|
+ errorMsg += "암호화 처리오류입니다.";
|
|
|
}
|
|
}
|
|
|
else if( iRtn == -3) {
|
|
else if( iRtn == -3) {
|
|
|
- errorMsg = "암호화 데이터 오류입니다.";
|
|
|
|
|
|
|
+ errorMsg += "암호화 데이터 오류입니다.";
|
|
|
}
|
|
}
|
|
|
else if( iRtn == -9) {
|
|
else if( iRtn == -9) {
|
|
|
- errorMsg = "입력 데이터 오류입니다.";
|
|
|
|
|
|
|
+ errorMsg += "입력 데이터 오류입니다.";
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
- errorMsg = "알수 없는 에러 입니다.";
|
|
|
|
|
|
|
+ errorMsg += "알수 없는 에러 입니다.";
|
|
|
}
|
|
}
|
|
|
- throw new IllegalStateException(errorMsg +"\n 안심본인인증을 사용할 수 없습니다.");
|
|
|
|
|
|
|
+ log.error("errorMsg : ===> {}" , errorMsg);
|
|
|
|
|
+ throw new IllegalStateException("안심본인인증을 사용할 수 없습니다.");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
resultMap.setInt("iRtn", iRtn);
|
|
resultMap.setInt("iRtn", iRtn);
|
|
@@ -125,7 +129,7 @@ public class NiceCertify {
|
|
|
* @author jsshin
|
|
* @author jsshin
|
|
|
* @since 2021. 02. 05
|
|
* @since 2021. 02. 05
|
|
|
*/
|
|
*/
|
|
|
- public GagaMap getCertifyResultInfo(Customer customer) {
|
|
|
|
|
|
|
+ public GagaMap getCertifyCellPhoneResultInfo(Customer customer) {
|
|
|
GagaMap resultMap = new GagaMap();
|
|
GagaMap resultMap = new GagaMap();
|
|
|
String sEncData = requestReplace(customer.getEncData(),"encodeData");
|
|
String sEncData = requestReplace(customer.getEncData(),"encodeData");
|
|
|
|
|
|
|
@@ -138,21 +142,22 @@ public class NiceCertify {
|
|
|
if (iRtn != 0) {
|
|
if (iRtn != 0) {
|
|
|
String errorMsg = "[" + iRtn + "]";
|
|
String errorMsg = "[" + iRtn + "]";
|
|
|
if (iRtn == -1) {
|
|
if (iRtn == -1) {
|
|
|
- errorMsg = errorMsg + "복호화 시스템 오류입니다.";
|
|
|
|
|
|
|
+ errorMsg += "복호화 시스템 오류입니다.";
|
|
|
} else if (iRtn == -4) {
|
|
} else if (iRtn == -4) {
|
|
|
- errorMsg = errorMsg + "복호화 처리 오류입니다.";
|
|
|
|
|
|
|
+ errorMsg += "복호화 처리 오류입니다.";
|
|
|
} else if (iRtn == -5) {
|
|
} else if (iRtn == -5) {
|
|
|
- errorMsg = errorMsg + "복호화 해쉬 오류입니다.";
|
|
|
|
|
|
|
+ errorMsg += "복호화 해쉬 오류입니다.";
|
|
|
} else if (iRtn == -6) {
|
|
} else if (iRtn == -6) {
|
|
|
- errorMsg = errorMsg + "복호화 데이터 오류입니다.";
|
|
|
|
|
|
|
+ errorMsg += "복호화 데이터 오류입니다.";
|
|
|
} else if (iRtn == -9) {
|
|
} else if (iRtn == -9) {
|
|
|
- errorMsg = errorMsg + "입력 데이터 오류입니다.";
|
|
|
|
|
|
|
+ errorMsg += "입력 데이터 오류입니다.";
|
|
|
} else if (iRtn == -12) {
|
|
} else if (iRtn == -12) {
|
|
|
- errorMsg = errorMsg + "사이트 패스워드 오류입니다.";
|
|
|
|
|
|
|
+ errorMsg += "사이트 패스워드 오류입니다.";
|
|
|
} else {
|
|
} else {
|
|
|
- errorMsg = errorMsg + "결과값 확인 후, NICE신용평가정보 개발 담당자에게 문의";
|
|
|
|
|
|
|
+ errorMsg += "결과값 확인 후, NICE신용평가정보 개발 담당자에게 문의";
|
|
|
}
|
|
}
|
|
|
- throw new IllegalStateException(errorMsg);
|
|
|
|
|
|
|
+ log.error("errorMsg : ===> {}" , errorMsg);
|
|
|
|
|
+ throw new IllegalStateException("안심본인인증을 사용할 수 없습니다.");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -187,7 +192,7 @@ public class NiceCertify {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
String sAdult = ""; // 미성년 : 0, 성인 : 1
|
|
String sAdult = ""; // 미성년 : 0, 성인 : 1
|
|
|
- String foreignerYn = ""; // 외국인여부(외국인:Y)
|
|
|
|
|
|
|
+ String sforeignerYn = ""; // 외국인여부(외국인:Y)
|
|
|
|
|
|
|
|
if ("0".equals(sGender)) {
|
|
if ("0".equals(sGender)) {
|
|
|
sGender = "F";
|
|
sGender = "F";
|
|
@@ -200,37 +205,152 @@ public class NiceCertify {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if ("0".equals(sNationalInfo)) {
|
|
if ("0".equals(sNationalInfo)) {
|
|
|
- foreignerYn = "N";
|
|
|
|
|
|
|
+ sforeignerYn = "N";
|
|
|
} else if ("1".equals(sNationalInfo)) {
|
|
} else if ("1".equals(sNationalInfo)) {
|
|
|
- foreignerYn = "Y";
|
|
|
|
|
|
|
+ sforeignerYn = "Y";
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- resultMap.setString("authType", sAuthType);
|
|
|
|
|
- resultMap.setString("custNm", sName);
|
|
|
|
|
- resultMap.setString("sexGb", sGender);
|
|
|
|
|
- resultMap.setString("birthYmd", sBirthDate);
|
|
|
|
|
- resultMap.setString("foreignerYn", foreignerYn);
|
|
|
|
|
|
|
+ resultMap.setString("sAuthType", sAuthType);
|
|
|
|
|
+ resultMap.setString("sName", sName);
|
|
|
|
|
+ resultMap.setString("sGender", sGender);
|
|
|
|
|
+ resultMap.setString("sBirthDate", sBirthDate);
|
|
|
|
|
+ resultMap.setString("sforeignerYn", sforeignerYn);
|
|
|
resultMap.setString("sDi", sDi);
|
|
resultMap.setString("sDi", sDi);
|
|
|
resultMap.setString("sCi", sCi);
|
|
resultMap.setString("sCi", sCi);
|
|
|
- resultMap.setString("cellPhnno", sMobileNo);
|
|
|
|
|
|
|
+ resultMap.setString("sMobileNo", sMobileNo);
|
|
|
resultMap.setString("sMobileCo", sMobileCo);
|
|
resultMap.setString("sMobileCo", sMobileCo);
|
|
|
- resultMap.setString("adult", sAdult);
|
|
|
|
|
|
|
+ resultMap.setString("sAdult", sAdult);
|
|
|
|
|
|
|
|
return resultMap;
|
|
return resultMap;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 아이핀 인증 요청
|
|
|
|
|
+ * @return GagaMap
|
|
|
|
|
+ * @author jsshin
|
|
|
|
|
+ * @since 2021. 02. 09
|
|
|
|
|
+ */
|
|
|
public GagaMap certifyIpin() {
|
|
public GagaMap certifyIpin() {
|
|
|
IPIN2Client ipinClinet = new IPIN2Client();
|
|
IPIN2Client ipinClinet = new IPIN2Client();
|
|
|
- String Callback = GagaFileUtil.getConcatenationPath("https://" + TsfSession.getHttpServletRequest().getServerName(), ipinCallback);
|
|
|
|
|
|
|
+ String callback = GagaFileUtil.getConcatenationPath( PROTOCOL + TsfSession.getHttpServletRequest().getServerName(), ipinCallback);
|
|
|
|
|
+
|
|
|
String sCPRequestNo = ipinClinet.getRequestNO(ipinId);
|
|
String sCPRequestNo = ipinClinet.getRequestNO(ipinId);
|
|
|
|
|
+ TscSession.setAttribute("CPREQUEST", sCPRequestNo);
|
|
|
|
|
|
|
|
- int iRtn = ipinClinet.fnRequest(ipinId, ipinPwd, sCPRequestNo, Callback);
|
|
|
|
|
|
|
+ // 인증요청 암호화 데이터 생성
|
|
|
|
|
+ int iRtn = ipinClinet.fnRequest(ipinId, ipinPwd, sCPRequestNo, callback);
|
|
|
|
|
|
|
|
if (iRtn != 0) { // 실패했으면
|
|
if (iRtn != 0) { // 실패했으면
|
|
|
|
|
+ String errorMsg = "[" + iRtn + "]";
|
|
|
|
|
+ if (iRtn == -1) {
|
|
|
|
|
+ errorMsg += "암호화 시스템 오류 : 귀사 서버 환경에 맞는 모듈을 이용해주십시오." +
|
|
|
|
|
+ "<br>오류가 지속되는 경우 iRtn 값, 서버 환경정보, 사이트코드를 기재해 문의주시기 바랍니다.";
|
|
|
|
|
+ } else if (iRtn == -2) {
|
|
|
|
|
+ errorMsg += "암호화 처리 오류 : 최신 모듈을 이용해주십시오. " +
|
|
|
|
|
+ "오류가 지속되는 경우 iRtn 값, 서버 환경정보, 사이트코드를 기재해 문의주시기 바랍니다.";
|
|
|
|
|
+ } else if (iRtn == -9) {
|
|
|
|
|
+ errorMsg += "입력 정보 오류 : 암호화 함수에 입력된 파라미터 값을 확인해주십시오." +
|
|
|
|
|
+ "<br>오류가 지속되는 경우, 함수 실행 직전 각 파라미터 값을 로그로 출력해 발송해주시기 바랍니다.";
|
|
|
|
|
+ } else {
|
|
|
|
|
+ errorMsg += "기타 오류: iRtn 값과 적용한 샘플소스를 발송해주시기 바랍니다.";
|
|
|
|
|
+ }
|
|
|
|
|
+ log.error("errorMsg : ===> {}" , errorMsg);
|
|
|
throw new IllegalStateException("안심본인인증을 사용할 수 없습니다.");
|
|
throw new IllegalStateException("안심본인인증을 사용할 수 없습니다.");
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
GagaMap resultMap = new GagaMap();
|
|
GagaMap resultMap = new GagaMap();
|
|
|
resultMap.setString("sEncData", ipinClinet.getCipherData());
|
|
resultMap.setString("sEncData", ipinClinet.getCipherData());
|
|
|
|
|
+
|
|
|
|
|
+ return resultMap;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 아이핀 인증 결과값
|
|
|
|
|
+ * @param customer - 인증정보
|
|
|
|
|
+ * @return GagaMap
|
|
|
|
|
+ * @author jsshin
|
|
|
|
|
+ * @since 2020. 7. 15
|
|
|
|
|
+ */
|
|
|
|
|
+ public GagaMap getCertifyIpinResultInfo(Customer customer) {
|
|
|
|
|
+ GagaMap resultMap = new GagaMap();
|
|
|
|
|
+ String sEncData = requestReplace(customer.getEncData(), "encodeData");
|
|
|
|
|
+
|
|
|
|
|
+ if (StringUtils.isBlank(sEncData)) {
|
|
|
|
|
+ throw new IllegalStateException("안심본인인증을 사용할 수 없습니다.");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ IPIN2Client ipinClinet = new IPIN2Client();
|
|
|
|
|
+ int iRtn = ipinClinet.fnResponse(ipinId, ipinPwd, sEncData);
|
|
|
|
|
+
|
|
|
|
|
+ if (iRtn != 1) {
|
|
|
|
|
+ String errorMsg = "[" + iRtn + "]";
|
|
|
|
|
+ if (iRtn == -1 || iRtn == -4) {
|
|
|
|
|
+ errorMsg += "복호화 시스템 오류 :<br> 귀사 서버 환경에 맞는 모듈을 이용해주십시오." +
|
|
|
|
|
+ "<br>오류가 지속되는 경우 iRtn 값, 서버 환경정보, 사이트코드를 기재해 문의주시기 바랍니다.";
|
|
|
|
|
+ } else if (iRtn == -6){
|
|
|
|
|
+ errorMsg += "복호화 처리 오류: 당사에서 이용하는 charset인 EUC-KR이 정상적으로 받아지는 확인해주십시오. " +
|
|
|
|
|
+ "<br>오류가 지속되는 경우, 개발 가이드의 <b>\"결과 데이터 확인 방법\"</b>을 참고해주시기 바랍니다.";
|
|
|
|
|
+ } else if (iRtn == -9) {
|
|
|
|
|
+ errorMsg += "입력 정보 오류: 복호화 함수에 입력된 파라미터 값을 확인해주십시오." +
|
|
|
|
|
+ "<br>오류가 지속되는 경우, 함수 실행 직전 각 파라미터 값을 로그로 출력해 발송해주시기 바랍니다.";
|
|
|
|
|
+ } else if (iRtn == -12) {
|
|
|
|
|
+ errorMsg += "CP 패스워드 불일치: IPIN 서비스 사이트패스워드를 확인해주시기 바랍니다.";
|
|
|
|
|
+ } else if (iRtn == -13) {
|
|
|
|
|
+ errorMsg += "CP 요청번호 불일치: 세션에 저장된 CP요청번호(sCPRequest) 값을 확인해주시기 바랍니다.";
|
|
|
|
|
+ } else {
|
|
|
|
|
+ errorMsg += "기타오류: iRtn 값 확인 후 NICE평가정보 전산 담당자에게 문의해주시기 바랍니다.";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ log.error("errorMsg : ===> {}" , errorMsg);
|
|
|
|
|
+ throw new IllegalStateException("안심본인인증을 사용할 수 없습니다.");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ String sVirtualNo = ipinClinet.getVNumber(); // 가상주민번호 (13자리이며, 숫자 또는 문자
|
|
|
|
|
+ String sName = ipinClinet.getName(); // 이름 (EUC-KR)
|
|
|
|
|
+ String sAgeCode = ipinClinet.getAgeCode(); // 연령대 코드 (개발 가이드 참조)
|
|
|
|
|
+ String sGenderCode = ipinClinet.getGenderCode(); // 성별 코드 (0:여성, 1: 남성)
|
|
|
|
|
+ String sBirthDate = ipinClinet.getBirthDate(); // 생년월일 (YYYYMMDD)
|
|
|
|
|
+ String sForeigner = ipinClinet.getNationalInfo(); // 내/외국인코드 (0:내국인, 1:외국인)
|
|
|
|
|
+ String sCPRequestNum = ipinClinet.getCPRequestNO(); // CP 요청번호
|
|
|
|
|
+ String sDupInfo = ipinClinet.getDupInfo(); // 중복가입확인값 (64byte, 개인식별값, DI:Duplicate Info)
|
|
|
|
|
+ String sConnInfo = ipinClinet.getCoInfo1(); // 연계정보 확인값 (88byte, 개인식별값, CI:Connecting Information)
|
|
|
|
|
+ String sCIUpdate = ipinClinet.getCIUpdate(); // CI 갱신정보 (1~: 가이드 참조)
|
|
|
|
|
+ String sAuthInfo = ipinClinet.getAuthInfo(); // 본인확인수단 (0~4: 가이드 참조)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ String sCPRequestNo = TscSession.getAttribute("CPREQUEST");
|
|
|
|
|
+ if (!sCPRequestNo.equals(sCPRequestNum)) {
|
|
|
|
|
+ throw new IllegalStateException("세션값 불일치 오류 입니다.");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ String sGender = "";
|
|
|
|
|
+ String sAdult = "N"; //미성년자
|
|
|
|
|
+ String sforeignerYn = "";
|
|
|
|
|
+
|
|
|
|
|
+ if (Integer.parseInt(sAgeCode) > 3) {
|
|
|
|
|
+ sAdult = "Y";//성인
|
|
|
|
|
+ }
|
|
|
|
|
+ if ("0".equals(sGenderCode)) {
|
|
|
|
|
+ sGender = "F";
|
|
|
|
|
+ } else if ("1".equals(sGenderCode)) {
|
|
|
|
|
+ sGender = "M";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ("0".equals(sForeigner)) {
|
|
|
|
|
+ sforeignerYn = "N";
|
|
|
|
|
+ } else if ("1".equals(sForeigner)) {
|
|
|
|
|
+ sforeignerYn = "Y";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ resultMap.setString("sVirtualNo", sVirtualNo);
|
|
|
|
|
+ resultMap.setString("sName", sName);
|
|
|
|
|
+ resultMap.setString("sGender", sGender);
|
|
|
|
|
+ resultMap.setString("sBirthDate", sBirthDate);
|
|
|
|
|
+ resultMap.setString("sforeignerYn", sforeignerYn);
|
|
|
|
|
+ resultMap.setString("sDupInfo", sDupInfo);
|
|
|
|
|
+ resultMap.setString("sConnInfo", sConnInfo);
|
|
|
|
|
+ resultMap.setString("sAdult", sAdult);
|
|
|
|
|
+
|
|
|
return resultMap;
|
|
return resultMap;
|
|
|
}
|
|
}
|
|
|
|
|
|