Parcourir la source

이태영 - 20210303 PG 테스트 중

xodud1202 il y a 5 ans
Parent
commit
982d4ef762

BIN
lib/ConnectionKCP.jar


BIN
lib/jPpcliE.jar


+ 8 - 0
pom.xml

@@ -57,6 +57,14 @@
 			<scope>system</scope>
 			<systemPath>${basedir}/lib/gagaframework-excel-1.7.1-RELEASE.jar</systemPath>
 		</dependency>
+		<!-- KCP -->
+		<dependency>
+			<groupId>com.kcp</groupId>
+			<artifactId>kcp</artifactId>
+			<version>1.0</version>
+			<scope>system</scope>
+			<systemPath>${basedir}/lib/jPpcliE.jar</systemPath>
+		</dependency>
 		<!-- \\\ WEB-INF lib -->
 	</dependencies>
 	

+ 49 - 3
src/main/java/com/style24/core/biz/service/TscKcpService.java

@@ -1,5 +1,7 @@
 package com.style24.core.biz.service;
 
+import java.io.UnsupportedEncodingException;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -8,7 +10,8 @@ import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
 
 import com.gagaframework.web.parameter.GagaMap;
-import com.style24.persistence.domain.Order;
+import com.kcp.J_PP_CLI_N;
+import com.style24.persistence.domain.Payment;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -18,14 +21,57 @@ public class TscKcpService {
 	@Autowired
 	private Environment env;
 
-	public GagaMap kcpOrderRequest(Order param, HttpServletRequest request, HttpServletResponse response) {
+	public String f_get_parm(String val) {
+		if ( val == null ) val = "";
+		return  val;
+	}
+
+	public GagaMap kcpPayRequest(Payment param, HttpServletRequest request, HttpServletResponse response) throws Exception {
 		GagaMap result = new GagaMap();
 		// PC pay_method
 		/* =  신용카드 : 100000000000, 계좌이체  : 010000000000, 가상계좌 : 001000000000 = */
-		/* =  포인트   : 000100000000, 휴대폰   : 000010000000, 상품권   : 000000001000  = */
+		/* =  포인트   : 000100000000, 휴대폰    : 000010000000, 상품권   : 000000001000 = */
 		/* =  ARS      : 000000000010                                                    = */
 
+		// 01. characterEncoding EUC-KR 세팅
+		request.setCharacterEncoding("euc-kr");
+
+		log.info("CHECK INFO PARAM >> {}", param.toString());
+		if (!"POST".equals(request.getMethod())) {
+			throw new IllegalArgumentException("잘못된 경로로 접속하셨습니다.");
+		}
+
+		// 02. 지불 요청 정보 설정
+		param.setReqTx(request.getParameter("req_tx"));
+		param.setTranCd(request.getParameter("tran_cd"));
+		param.setOrdrIdxx(request.getParameter("ordr_idxx"));
+
+		// 03. 인스턴스 생성 및 초기화(변경 불가) (결제에 필요한 인스턴스를 생성하고 초기화 합니다.)
+		J_PP_CLI_N c_PayPlus = new J_PP_CLI_N();
+		c_PayPlus.mf_init("", env.getProperty("pg.kcp.gw.url"), env.getProperty("pg.kcp.gw.port"), Integer.parseInt(env.getProperty("pg.kcp.tx.mode")), env.getProperty("pg.kcp.log.dir"));
+		c_PayPlus.mf_init_set();
+
+		// 04-1. 승인 요청 정보 설정
+		if ("pay".equals(param.getReqTx())){
+			c_PayPlus.mf_set_enc_data(f_get_parm(request.getParameter("enc_data" )), f_get_parm(request.getParameter("enc_info")));
+
+			/* 1원은 실제로 업체에서 결제하셔야 될 원 금액을 넣어주셔야 합니다. 결제금액 유효성 검증 */
+			int ordr_data_set_no = c_PayPlus.mf_add_set("ordr_data");
+			c_PayPlus.mf_set_us(ordr_data_set_no, "ordr_mony", request.getParameter("good_mny"));
+		}
+
+		// 05. 실행
+		if (param.getTranCd().length() > 0) {
+			c_PayPlus.mf_do_tx(env.getProperty("pg.kcp.site.cd"), env.getProperty("pg.kcp.site.key"), param.getTranCd(), "", param.getOrdrIdxx(), env.getProperty("pg.kcp.log.level"), "0");
+		} else {
+			c_PayPlus.m_res_cd  = "9562";
+			c_PayPlus.m_res_msg = "연동 오류|tran_cd값이 설정되지 않았습니다.";
+		}
+
+		param.setResCd(c_PayPlus.m_res_cd);		// 결과 코드
+		param.setResMsg(c_PayPlus.m_res_msg);	// 결과 메시지
 
+		log.info("CHECK RESULT >> " + param.toString());
 
 		return result;
 	}

+ 2 - 1
src/main/java/com/style24/core/biz/web/TscKcpController.java

@@ -48,7 +48,8 @@ public class TscKcpController {
 		GagaMap result = new GagaMap();
 		try {
 			request.setCharacterEncoding("euc-kr");
-			result = kcpService.kcpOrderRequest(param, request, response);
+
+			//result = kcpService.kcpOrderRequest(param, request, response);
 			result.put("message", "SUCCESS");
 		} catch (Exception e) {
 

+ 0 - 3
src/main/java/com/style24/persistence/domain/Coupon.java

@@ -72,9 +72,6 @@ public class Coupon extends TscBaseDomain {
     private Integer limitCpnId;         // 선착순쿠폰일련번호
     private String delYn;
     private String cpnDesc;             // 쿠폰설명
-    // payco_redirect = Y           >> 페이코 송부시에만
-    // pay_mthod = 100000000000     >> 페이코 송부시에만
-    // pay_method = 100000000000    >> 페이코 송비시에
     @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
     private int[] cartSqArr;		// 장바구니 일련번호 배열
     @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)

+ 6 - 8
src/main/java/com/style24/persistence/domain/Payment.java

@@ -11,31 +11,29 @@ import com.style24.persistence.TscPageRequest;
 import lombok.Data;
 
 /**
- * 알람 Domain
- * 
- * @author jsh77b
- * @since 2021. 01. 18
+ * 결제 정보
+ * @author xodud1202
+ * @since 2021. 03. 03
  */
 @SuppressWarnings("serial")
 @Data
 public class Payment extends TscBaseDomain {
 	// KCP
+	private int quotaopt;			// 할부옵션
+	private int goodMny;			// 결제금액
 	private String reqTx;			// 요청종류 (승인 : pay, 취소, 매입 : mod)
-	private String SiteCd;			// 회사코드
+	private String siteCd;			// 회사코드
 	private String siteName;		// 사이트명
-	private int quotaopt;			// 할부옵션
 	private String currency;		// 결제 화폐단위
 	private String moduleType;		// 모듈타입
 	private String payMethod;		// 지불 방법(신용카드 : 100000000000, 계좌이체 : 010000000000, 가상계좌 : 001000000000, 포인트   : 000100000000, 휴대폰   : 000010000000, 상품권   : 000000001000, ARS      : 000000000010)
 	private String ordrIdxx;		// 주문번호
 	private String goodName;		// 상품명
-	private int goodMny;			// 결제금액
 	private String buyrName;		// 주문자명
 	private String buyrMail;		// 주문자 E-MAIL
 	private String buyrTel1;		// 주문자 연락처1(전화번호)
 	private String buyrTel2;		// 주문자 연락처2(휴대폰번호)
 	private String goodExpr;		// 2012년 8월 18일 전자상거래법 개정 관련 설정 부분 : 제공 기간 설정 0:일회성 1:기간설정(ex 1:2012010120120131)
-	// 필수 항목 : 아래 항목은 표준웹에서 값을 설정하는 부분으로 반드시 포함되어야 합니다 값을 설정하지 마십시오
 	private String resCd;
 	private String resMsg;
 	private String encInfo;