Преглед изворни кода

이태영 - 20210513 KCP 모바일 결제 수정중

xodud lee пре 5 година
родитељ
комит
e5f067cadf

+ 24 - 7
src/main/java/com/style24/front/biz/web/TsfPgController.java

@@ -7,10 +7,9 @@ import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Payment;
-import kr.co.kcp.net.connection.ConnectionKCP;
-import kr.co.kcp.net.connection.dto.ParamData;
-import kr.co.kcp.net.connection.util.HttpJsonXml;
-import kr.co.kcp.net.connection.util.OpenHash;
+import kr.co.kcp.net.connection.*;
+import kr.co.kcp.net.connection.dto.*;
+import kr.co.kcp.net.connection.util.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -24,9 +23,7 @@ import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 import java.io.PrintWriter;
-import java.util.Collection;
 
 @Controller
 @RequestMapping("/pg")
@@ -97,6 +94,7 @@ public class TsfPgController extends TsfBaseController {
 	public ModelAndView kcpApproval(Payment param, HttpServletRequest request, HttpServletResponse response, Model model) throws Exception{
 		try {	request.setCharacterEncoding("euc-kr");	} catch(Exception e) {	}
 		response.setContentType("text/html;charset=euc-kr");
+		log.info("CHECK INFO ::::: {}", param.toString());
 		response.setHeader("Cache-Control","no-store");
 		response.setHeader("Pragma","no-cache");
 		response.setDateHeader("Expires",0);
@@ -108,6 +106,14 @@ public class TsfPgController extends TsfBaseController {
 		HttpJsonXml   hjx = new HttpJsonXml();			// 응답값 get value 형식으로 가져올수 있는 Object           ( Java 또는 JSP 내에서 데이터를 파싱할때 필요 - XML 또는 JSON )
 		ParamData pd  = new ParamData();				// 파라메타 값을 세팅할수 있는 bean Object                  ( String, HashMap 등으로 대체 가능 )
 
+		/*pd.setGood_mny(String.valueOf(param.getGoodMny()));
+		pd.setGood_name(param.getGoodName());
+		pd.setOrdr_idxx(param.getOrdrIdxx());
+		pd.setPay_method(param.getPayMethod());
+		pd.setRet_URL(coreOrderService.simpleEncode(param.getRetUrl()));
+		pd.setSite_cd(param.getSiteCd());
+		pd.setEscw_used(param.getEscwUsed() == null ? "" : param.getEscwUsed());*/
+
 		pd.setGood_mny(request.getParameter("good_mny"));
 		pd.setGood_name(request.getParameter("good_name"));
 		pd.setOrdr_idxx(request.getParameter("ordr_idxx"));
@@ -116,12 +122,23 @@ public class TsfPgController extends TsfBaseController {
 		pd.setSite_cd(request.getParameter("site_cd"));
 		pd.setEscw_used(request.getParameter("escw_used") == null ? "" : request.getParameter("escw_used"));
 
+		log.info("CHECK INFO :::::: {}", pd.getGood_mny());
+		log.info("CHECK INFO :::::: {}", pd.getGood_name());
+		log.info("CHECK INFO :::::: {}", pd.getOrdr_idxx());
+		log.info("CHECK INFO :::::: {}", pd.getPay_method());
+		log.info("CHECK INFO :::::: {}", pd.getRet_URL());
+		log.info("CHECK INFO :::::: {}", pd.getSite_cd());
+		log.info("CHECK INFO :::::: {}", pd.getEscw_used());
+
+
 		String responseType = request.getParameter("response_type");
 		if("JSON".equals(responseType) || "XML".equals(responseType)) {
 			pd.setResponse_type(responseType);
 		}
 
-		out.println( suc.kcpPaymentSmartPhone(request, Boolean.parseBoolean(env.getProperty("pg.kcp.server")), pd, env.getProperty("pg.kcp.log.dir"))); // 이클립스 상에서 메서드를 클릭 후 F2를 누르면 상세 내용이 나옵니다.
+		String result = suc.kcpPaymentSmartPhone(request, Boolean.parseBoolean(env.getProperty("pg.kcp.server")), pd, env.getProperty("pg.kcp.log.dir"));
+		log.info("CHECK KCP MOBILE RESULT ::::: {}", result);
+		out.println(result); // 이클립스 상에서 메서드를 클릭 후 F2를 누르면 상세 내용이 나옵니다.
 
 		return null;
 	}

+ 4 - 4
src/main/resources/config/application-locd.yml

@@ -69,10 +69,10 @@ pg:
         js.url: https://testpay.kcp.co.kr/plugin/payplus_web.jsp
         server: false
         site:
-            #cd: U3476
-            #key:
-            cd: T0000
-            key: 3grptw1.zW0GSo4PQdaGvsF__
+            cd: U3476
+            key:
+            #cd: T0000
+            #key: 3grptw1.zW0GSo4PQdaGvsF__
             name: ISTYLE TEST
         log.level: 3
         module.type: 01

+ 37 - 3
src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html

@@ -24,7 +24,7 @@
 <!-- payment.js -->
 <script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
 <script type="text/javascript" src="/biz/payment.js"></script>
-<script type="text/javascript" src="/ux/plugins/approval_key.js"></script>
+<script type="text/javascript" src="/ux/plugins/approval_key.js" charset='euc-kr'></script>
 
 <form id="order_info" name="order_info" method="post" action="/order/pay/result/response" ></form>
 
@@ -1262,13 +1262,47 @@ var paymentInfoSet = function() {
 							$("#order_info").html(result);
 							
 							var pgGb = $("#order_info input[name=pgGb]").val();
-							
+
 							if (pgGb == "NAVER") {
 								fnNaverPaymentReady();
 							} else if (pgGb == "KAKAO") {
 								fnKakaoPaymentReady();
 							} else if (pgGb == "KCP" || pgGb == "PAYCO") {
-								jsf__pay(document.order_info);
+								//kcp_AJAX();
+								//jsf__pay(document.order_info);
+								//$("#order_info").attr("action", "/kcp/approval");
+								//$("#order_info").submit();
+								//alert(JSON.stringify($("#order_info").serialize()));
+
+								kcp_AJAX();
+
+								//ajax_flag = false;
+
+								/*let data = {
+									  siteCd : $("#order_info input[name=site_cd]").val()
+									, ordrIdxx : $("#order_info input[name=ordr_idxx]").val()
+									, goodMny : $("#order_info input[name=good_mny]").val()
+									, payMethod : $("#order_info input[name=pay_method]").val()
+									, goodName : $("#order_info input[name=good_name]").val()
+									, responseType : $("#order_info input[name=response_type]").val()
+									, retUrl : $("#order_info input[name=Ret_URL]").val()
+									, escwUsed : $("#order_info input[name=escw_used]").val()
+								}
+
+								$.ajax( {
+									type		: "POST",
+									url 		: '/pg/kcp/approval',
+									data		: JSON.stringify(data),
+									dataType 	: 'json',
+									beforeSend : function(xhr, settings) {
+										xhr.setRequestHeader("AJAX"			, "true");
+										xhr.setRequestHeader('Accept'		, 'application/json');
+										xhr.setRequestHeader('Content-Type'	, 'application/json');
+									},
+									success 	: function(result) {
+										alert("된건가");
+									}
+								});*/
 							}
 						}
 					});

+ 2 - 1
src/main/webapp/WEB-INF/views/mob/pg/kcpOrderMob.html

@@ -28,7 +28,8 @@
 	<input type="hidden" name="quotaopt"		th:value="${payment.quotaopt}"/>	<!-- 최대 할부 개월 수(0 ~ 18까지 설정 가능) -->
 	<input type="hidden" name="ipgm_date"		value=""/>							<!-- 가상계좌설정 -->
 	<input type="hidden" name="PayUrl"			th:value="${'http:' + @environment.getProperty('domain.front') + payment.payUrl}" id="PayUrl"/>	<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
-	<input type="hidden" name="Ret_URL"			th:value="${'http:' + @environment.getProperty('domain.front') + payment.retUrl}">			<!-- 리턴 URL (kcp와 통신후 결제를 요청할 수 있는 암호화 데이터를 전송 받을 가맹점의 주문페이지 URL) -->
+	<!--<input type="hidden" name="Ret_URL"			th:value="${'http:' + @environment.getProperty('domain.front') + payment.retUrl}">-->			<!-- 리턴 URL (kcp와 통신후 결제를 요청할 수 있는 암호화 데이터를 전송 받을 가맹점의 주문페이지 URL) -->
+	<input type="hidden" name="Ret_URL"			value="http://ldfront.style24.com/order/form" />
 
 	<input type="hidden" name="tablet_size"		value="1.0">						<!-- 화면 크기 조정 -->
 	<input type="hidden" name="response_type"	value="TEXT"/>						<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->

+ 25 - 25
src/main/webapp/ux/plugins/approval_key.js

@@ -28,14 +28,14 @@
 
     function kcp_AJAX()
     {
-        // 해당 소스는 jQuery를 사용 하지 않는 업체에서도 작동 할수 있도록 구현되었습니다.
-        // 이 부분은 javascript로 구현시 jQuery를 이용하면 더욱 쉽게 구현 할수 있습니다. 
-        // 또는
-        // javascript를 통한 ajax 통신을 할 필요 없이 소스내에 order_approval.jsp를 연동해서 사용 하셔도 관계 없으며
-        // 제공되는 jar 파일에 직접 전달된 데이터를 사용할수 있도록 method가 구현 되어 있습니다.
+        // 占쌔댐옙 占쌀쏙옙占쏙옙 jQuery占쏙옙 占쏙옙占� 占쏙옙占쏙옙 占십댐옙 占쏙옙체占쏙옙占쏙옙占쏙옙 占쌜듸옙 占쌀쇽옙 占쌍듸옙占쏙옙 占쏙옙占쏙옙占실억옙占쏙옙占싹댐옙.
+        // 占쏙옙 占싸븝옙占쏙옙 javascript占쏙옙 占쏙옙占쏙옙占쏙옙 jQuery占쏙옙 占싱울옙占싹몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쌀쇽옙 占쌍쏙옙占싹댐옙. 
+        // 占실댐옙
+        // javascript占쏙옙 占쏙옙占쏙옙 ajax 占쏙옙占쏙옙占� 占쏙옙 占십울옙 占쏙옙占쏙옙 占쌀쏙옙占쏙옙占쏙옙 order_approval.jsp占쏙옙 占쏙옙占쏙옙占쌔쇽옙 占쏙옙占� 占싹셔듸옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙
+        // 占쏙옙占쏙옙占실댐옙 jar 占쏙옙占싹울옙 占쏙옙占쏙옙 占쏙옙占쌨듸옙 占쏙옙占쏙옙占싶몌옙 占쏙옙占쏙옙寗占� 占쌍듸옙占쏙옙 method占쏙옙 占쏙옙占쏙옙 占실억옙 占쌍쏙옙占싹댐옙.
         if(ajax_flag)
         {
-            var url    = "order_approval.jsp";
+            var url    = "http://ldfront.style24.com/pg/kcp/approval";
             var form = document.order_info;
             var params = "?site_cd=" + form.site_cd.value
                        + "&ordr_idxx=" + form.ordr_idxx.value
@@ -51,7 +51,7 @@
         }
         else
         {
-            alert("통신 중입니다. 잠시만 기다려 주세요.");
+            alert("占쏙옙占� 占쏙옙占쌉니댐옙. 占쏙옙첩占� 占쏙옙慕占� 占쌍쇽옙占쏙옙.");
         }
             
     }
@@ -64,31 +64,31 @@
             {
                 if ( req01_AJAX.responseText != null )
                 {
-                    // 해당 소스는 jQuery를 사용 하지 않는 업체에서도 작동 할수 있도록 구현되었습니다.
-                    // 이 부분은 javascript로 구현시 jQuery를 이용하면 더욱 쉽게 구현 할수 있습니다. 
-                    // 또는
-                    // javascript를 통한 ajax 통신을 할 필요 없이 소스내에 order_approval.jsp를 연동해서 사용 하셔도 관계 없으며
-                    // 제공되는 jar 파일에 직접 전달된 데이터를 사용할수 있도록 method가 구현 되어 있습니다.
+                    // 占쌔댐옙 占쌀쏙옙占쏙옙 jQuery占쏙옙 占쏙옙占� 占쏙옙占쏙옙 占십댐옙 占쏙옙체占쏙옙占쏙옙占쏙옙 占쌜듸옙 占쌀쇽옙 占쌍듸옙占쏙옙 占쏙옙占쏙옙占실억옙占쏙옙占싹댐옙.
+                    // 占쏙옙 占싸븝옙占쏙옙 javascript占쏙옙 占쏙옙占쏙옙占쏙옙 jQuery占쏙옙 占싱울옙占싹몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쌀쇽옙 占쌍쏙옙占싹댐옙. 
+                    // 占실댐옙
+                    // javascript占쏙옙 占쏙옙占쏙옙 ajax 占쏙옙占쏙옙占� 占쏙옙 占십울옙 占쏙옙占쏙옙 占쌀쏙옙占쏙옙占쏙옙 order_approval.jsp占쏙옙 占쏙옙占쏙옙占쌔쇽옙 占쏙옙占� 占싹셔듸옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙
+                    // 占쏙옙占쏙옙占실댐옙 jar 占쏙옙占싹울옙 占쏙옙占쏙옙 占쏙옙占쌨듸옙 占쏙옙占쏙옙占싶몌옙 占쏙옙占쏙옙寗占� 占쌍듸옙占쏙옙 method占쏙옙 占쏙옙占쏙옙 占실억옙 占쌍쏙옙占싹댐옙.
                     try
                     {
                         var form = document.order_info;
                         
                         if( form.response_type.value == "JSON" )
                         {
-                            StateChangeForJSON( req01_AJAX ); // JSON 방식일 경우
+                            StateChangeForJSON( req01_AJAX ); // JSON 占쏙옙占쏙옙占� 占쏙옙占�
                         }
                         else if( form.response_type.value == "XML" )
                         {
-                            StateChangeForXML( req01_AJAX ); // XML 방식일 경우
+                            StateChangeForXML( req01_AJAX ); // XML 占쏙옙占쏙옙占� 占쏙옙占�
                         }
                         else if( form.response_type.value == "TEXT" || form.response_type.value == "" )
                         {
-                            StateChangeForText( req01_AJAX ); // TEXT 방식일 경우
+                            StateChangeForText( req01_AJAX ); // TEXT 占쏙옙占쏙옙占� 占쏙옙占�
                         }
                     }
                     catch( e )
                     {
-                        StateChangeForText( req01_AJAX ); // TEXT 방식일 경우
+                        StateChangeForText( req01_AJAX ); // TEXT 占쏙옙占쏙옙占� 占쏙옙占�
                     }
                 }
             }
@@ -107,8 +107,8 @@
         if( txt[0].replace(/^\s*/,'').replace(/\s*$/,'') == '0000' )
         {
             document.getElementById( "approval" ).value = txt[1].replace(/^\s*/,'').replace(/\s*$/,'');
-            // 아래 alert는 삭제 해도됨
-            alert("성공적으로 거래가 등록 되었습니다.");
+            // 占싣뤄옙 alert占쏙옙 占쏙옙占쏙옙 占쌔듸옙占쏙옙
+            alert("占쏙옙占쏙옙占쏙옙占쏙옙占쏙옙 占신뤄옙占쏙옙 占쏙옙占� 占실억옙占쏙옙占싹댐옙.");
             PayUrl = decodeURIComponent( txt[2].replace(/^\s*/,'').replace(/\s*$/,'') );
             
             document.getElementById( "traceNo" ).value = txt[3].replace(/^\s*/,'').replace(/\s*$/,'');
@@ -123,7 +123,7 @@
             var res_msg = txt[2].replace(/^\s*/,'').replace(/\s*$/,'');
             
             ajax_flag=true;
-            alert("실패 되었습니다.[" + res_msg + "]");
+            alert("占쏙옙占쏙옙 占실억옙占쏙옙占싹댐옙.[" + res_msg + "]");
         }
     }
     
@@ -136,8 +136,8 @@
         if( x[0].getElementsByTagName( "Code" )[0].childNodes[0].nodeValue == '0000' )
         {
             document.getElementById( "approval" ).value = x[0].getElementsByTagName( "approvalKey" )[0].childNodes[0].nodeValue;
-            // 아래 alert는 삭제 해도됨
-            alert("성공적으로 거래가 등록 되었습니다.");
+            // 占싣뤄옙 alert占쏙옙 占쏙옙占쏙옙 占쌔듸옙占쏙옙
+            alert("占쏙옙占쏙옙占쏙옙占쏙옙占쏙옙 占신뤄옙占쏙옙 占쏙옙占� 占실억옙占쏙옙占싹댐옙.");
             PayUrl = x[0].getElementsByTagName( "PayUrl" )[0].childNodes[0].nodeValue;
             
             document.getElementById( "traceNo" ).value = x[0].getElementsByTagName( "traceNo"     )[0].childNodes[0].nodeValue;
@@ -152,7 +152,7 @@
         {
             ajax_flag=true;
             
-            alert("실패 되었습니다.[" + x[0].getElementsByTagName( "Message" )[0].childNodes[0].nodeValue + "]");
+            alert("占쏙옙占쏙옙 占실억옙占쏙옙占싹댐옙.[" + x[0].getElementsByTagName( "Message" )[0].childNodes[0].nodeValue + "]");
         }
     }
     
@@ -164,8 +164,8 @@
         if( json.Code == '0000' )
         {
             document.getElementById( "approval" ).value = json.approvalKey;
-            // 아래 alert는 삭제 해도됨
-            alert("성공적으로 거래가 등록 되었습니다.");
+            // 占싣뤄옙 alert占쏙옙 占쏙옙占쏙옙 占쌔듸옙占쏙옙
+            alert("占쏙옙占쏙옙占쏙옙占쏙옙占쏙옙 占신뤄옙占쏙옙 占쏙옙占� 占실억옙占쏙옙占싹댐옙.");
             PayUrl = json.PayUrl;
             
             document.getElementById( "PayUrl"  ).value = json.request_URI;
@@ -177,6 +177,6 @@
         {
             ajax_flag=true;
             
-            alert("실패 되었습니다.[" + json.Message + "]");
+            alert("占쏙옙占쏙옙 占실억옙占쏙옙占싹댐옙.[" + json.Message + "]");
         }
     }