Browse Source

모바일 결제 로직 수정

juney 2 years ago
parent
commit
b1f3d66611

+ 7 - 7
src/main/webapp/easypay/oqpo/mobile_order_res_submit.jsp

@@ -38,29 +38,29 @@ request.setCharacterEncoding("utf-8");
38 38
         window.document.getElementById("sp_res_msg").value            = "<%=getNullToSpace(request.getParameter("sp_res_msg"))          %>";  // [필수]응답메세지
39 39
         window.document.getElementById("sp_tr_cd").value              = "<%=getNullToSpace(request.getParameter("sp_tr_cd"))            %>";  // [필수]결제창 요청구분
40 40
         window.document.getElementById("sp_ret_pay_type").value       = "<%=getNullToSpace(request.getParameter("sp_ret_pay_type"))     %>";  // [필수]결제수단
41
-        window.document.getElementById("sp_trace_no").value           = "<%=getNullToSpace(request.getParameter("sp_trace_no"))         %>";  // [선택]추적번호     
41
+        window.document.getElementById("sp_trace_no").value           = "<%=getNullToSpace(request.getParameter("sp_trace_no"))         %>";  // [선택]추적번호
42 42
         window.document.getElementById("sp_order_no").value           = "<%=getNullToSpace(request.getParameter("sp_order_no"))         %>";  // [필수]가맹점 주문번호
43 43
         window.document.getElementById("sp_sessionkey").value         = "<%=getNullToSpace(request.getParameter("sp_sessionkey"))       %>";  // [필수]세션키
44 44
         window.document.getElementById("sp_encrypt_data").value       = "<%=getNullToSpace(request.getParameter("sp_encrypt_data"))     %>";  // [필수]암호화전문
45 45
         window.document.getElementById("sp_mall_id").value            = "<%=getNullToSpace(request.getParameter("sp_mall_id"))          %>";  // [필수]가맹점 ID
46 46
         window.document.getElementById("sp_mobilereserved1").value    = "<%=getNullToSpace(request.getParameter("sp_mobilereserved1"))  %>";  // [선택]여유필드
47 47
         window.document.getElementById("sp_mobilereserved2").value    = "<%=getNullToSpace(request.getParameter("sp_mobilereserved2"))  %>";  // [선택]여유필드
48
-        window.document.getElementById("sp_reserved1").value          = "<%=getNullToSpace(request.getParameter("sp_reserved1"))        %>";  // [선택]여유필드 
48
+        window.document.getElementById("sp_reserved1").value          = "<%=getNullToSpace(request.getParameter("sp_reserved1"))        %>";  // [선택]여유필드
49 49
         window.document.getElementById("sp_reserved2").value          = "<%=getNullToSpace(request.getParameter("sp_reserved2"))        %>";  // [선택]여유필드
50 50
         window.document.getElementById("sp_reserved3").value          = "<%=getNullToSpace(request.getParameter("sp_reserved3"))        %>";  // [선택]여유필드
51 51
         window.document.getElementById("sp_reserved4").value          = "<%=getNullToSpace(request.getParameter("sp_reserved4"))        %>";  // [선택]여유필드
52 52
 
53 53
         // <!--신용카드-->
54
-        window.document.getElementById("sp_card_code").value          = "<%=getNullToSpace(request.getParameter("sp_card_code"))        %>";  // [필수]카드코드 
54
+        window.document.getElementById("sp_card_code").value          = "<%=getNullToSpace(request.getParameter("sp_card_code"))        %>";  // [필수]카드코드
55 55
         window.document.getElementById("sp_eci_code").value           = "<%=getNullToSpace(request.getParameter("sp_eci_code"))         %>";  // [선택]ECI코드(MPI인 경우)
56 56
         window.document.getElementById("sp_card_req_type").value      = "<%=getNullToSpace(request.getParameter("sp_card_req_type"))    %>";  // [필수]거래구분
57 57
         window.document.getElementById("sp_save_useyn").value         = "<%=getNullToSpace(request.getParameter("sp_save_useyn"))       %>";  // [선택]카드사 세이브 여부
58
-        window.document.getElementById("sp_card_prefix").value        = "<%=getNullToSpace(request.getParameter("sp_card_prefix"))      %>";  // [선택]신용카드 Prefix 
59
-        window.document.getElementById("sp_card_no_7").value          = "<%=getNullToSpace(request.getParameter("sp_card_no_7"))        %>";  // [선택]신용카드번호 앞7자리   
60
-        
58
+        window.document.getElementById("sp_card_prefix").value        = "<%=getNullToSpace(request.getParameter("sp_card_prefix"))      %>";  // [선택]신용카드 Prefix
59
+        window.document.getElementById("sp_card_no_7").value          = "<%=getNullToSpace(request.getParameter("sp_card_no_7"))        %>";  // [선택]신용카드번호 앞7자리
60
+
61 61
         // <!--간편결제-->
62 62
         window.document.getElementById("sp_spay_cp").value            = "<%=getNullToSpace(request.getParameter("sp_spay_cp"))          %>";  // [선택]간편결제 CP코드
63
-        
63
+
64 64
         // <!--선불카드-->
65 65
         window.document.getElementById("sp_prepaid_cp").value         = "<%=getNullToSpace(request.getParameter("sp_prepaid_cp"))       %>";  // [선택]선불카드 CP코드
66 66
                           

+ 7 - 1
src/main/webapp/fail/404.html

@@ -24,6 +24,11 @@
24 24
 		const ITP_CONTEXTPATH = '';
25 25
 		const ITP_LANGUAGE = '';
26 26
 		const ITP_SYSTEM_ADMIN_YN = '';
27
+
28
+		function goMain() {
29
+			var rtnMobi = (/iphone|ipod|android|ie|blackberry|fennec/).test(navigator.userAgent.toLowerCase()) ? '/mobile/app' : '';
30
+			location.href = '/oqpo-view' + rtnMobi + '/main.html';
31
+		}
27 32
 	</script>
28 33
 
29 34
 	<script src="/js/require.min.js" data-main="/oqpo-view/js/app/config.js"></script>
@@ -54,7 +59,8 @@
54 59
 					</div>
55 60
 				</div>
56 61
 				<div class="text-center itp_copyright">COPYRIGHT © NOORIJA Co., Ltd. ALL RIGHTS RESERVED</div>
57
-				<p class="notfound"><a href="/oqpo-view/main.html">메인페이지 이동</a></p>
62
+				<p class="notfound"><a href="#" onclick="javascript:goMain();">메인페이지 이동</a></p>
63
+				<!--<p class="notfound"><a href="/oqpo-view/main.html">메인페이지 이동</a></p>-->
58 64
 			</div>
59 65
 		</div>
60 66
 	</div>

+ 97 - 0
src/main/webapp/mobile/app/easypay/oqpo/mobile_order_req.jsp

@@ -0,0 +1,97 @@
1
+<!--인증요청 페이지-->
2
+<!--메뉴얼 '인증페이지 작성' 인증요청 파라미터 포함.-->
3
+
4
+<!DOCTYPE html>
5
+<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
6
+<%
7
+/* -------------------------------------------------------------------------- */
8
+/* 캐쉬 사용안함                                                              */
9
+/* -------------------------------------------------------------------------- */
10
+response.setHeader("cache-control","no-cache");
11
+response.setHeader("expires","-1");
12
+response.setHeader("pragma","no-cache");
13
+request.setCharacterEncoding("utf-8");
14
+
15
+String kiccActionMobileUrl = request.getParameter("kiccActionMobileUrl");
16
+%>
17
+<html style="height: 100%;">
18
+<head>
19
+<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
20
+<meta name="robots" content="noindex, nofollow" />
21
+<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
22
+<script type="text/javascript">
23
+    window.onload = function()
24
+    {
25
+        document.frm.submit();
26
+    } 
27
+</script>
28
+<title>오더퀸 수발주 모바일 결제</title>
29
+</head>
30
+<body>
31
+    <!-- KICC 서버로 인증요청 -->
32
+    
33
+    <!-- TEST -->
34
+    <form name="frm" method="post" action="<%= kiccActionMobileUrl %>" >
35
+    <!-- REAL -->
36
+    <!--form name="frm" method="post" action="https://sp.easypay.co.kr/ep8/MainAction.do" -->
37
+    
38
+            
39
+        <!--공통-->
40
+        <input type="hidden" id="sp_mall_id"           name="sp_mall_id"           value="<%=request.getParameter("sp_mall_id")           %>" /> <!--[필수]가맹점ID -->
41
+        <input type="hidden" id="sp_mall_nm"           name="sp_mall_nm"           value="<%=request.getParameter("sp_mall_nm")           %>" /> <!--[선택]가맹점명 -->
42
+        <input type="hidden" id="sp_order_no"          name="sp_order_no"          value="<%=request.getParameter("sp_order_no")          %>" /> <!--[필수]가맹점 주문번호(인증응답) -->
43
+        <input type="hidden" id="sp_pay_type"          name="sp_pay_type"          value="<%=request.getParameter("sp_pay_type")          %>" /> <!--[필수]결제수단 -->
44
+        <input type="hidden" id="sp_cert_type"         name="sp_cert_type"         value="<%=request.getParameter("sp_cert_type")         %>" /> <!--[선택]인증타입 -->  
45
+        <input type="hidden" id="sp_currency"          name="sp_currency"          value="<%=request.getParameter("sp_currency")          %>" /> <!--[필수]통화코드(수정불가) -->        
46
+        <input type="hidden" id="sp_product_nm"        name="sp_product_nm"        value="<%=request.getParameter("sp_product_nm")        %>" /> <!--[필수]상품명 -->
47
+        <input type="hidden" id="sp_product_amt"       name="sp_product_amt"       value="<%=request.getParameter("sp_product_amt")       %>" /> <!--[필수]상품금액 m-->
48
+        <input type="hidden" id="sp_return_url"        name="sp_return_url"        value="<%=request.getParameter("sp_return_url")        %>" /> <!--[필수]가맹점 return URL -->
49
+        <input type="hidden" id="sp_lang_flag"         name="sp_lang_flag"         value="<%=request.getParameter("sp_lang_flag")         %>" /> <!--[선택]언어 -->
50
+        <input type="hidden" id="sp_charset"           name="sp_charset"           value="<%=request.getParameter("sp_charset")           %>" /> <!--[선택]가맹점 charset -->  
51
+        <input type="hidden" id="sp_user_id"           name="sp_user_id"           value="<%=request.getParameter("sp_user_id")           %>" /> <!--[선택]가맹점 고객ID -->
52
+        <input type="hidden" id="sp_memb_user_no"      name="sp_memb_user_no"      value="<%=request.getParameter("sp_memb_user_no")      %>" /> <!--[선택]가맹점 고객일련번호 -->
53
+        <input type="hidden" id="sp_user_nm"           name="sp_user_nm"           value="<%=request.getParameter("sp_user_nm")           %>" /> <!--[선택]가맹점 고객명 -->
54
+        <input type="hidden" id="sp_user_mail"         name="sp_user_mail"         value="<%=request.getParameter("sp_user_mail")         %>" /> <!--[선택]가맹점 고객 E-mail -->
55
+        <input type="hidden" id="sp_user_phone1"       name="sp_user_phone1"       value="<%=request.getParameter("sp_user_phone1")       %>" /> <!--[선택]가맹점 고객 연락처1 -->
56
+        <input type="hidden" id="sp_user_phone2"       name="sp_user_phone2"       value="<%=request.getParameter("sp_user_phone2")       %>" /> <!--[선택]가맹점 고객 연락처2 -->
57
+        <input type="hidden" id="sp_user_addr"         name="sp_user_addr"         value="<%=request.getParameter("sp_user_addr")         %>" /> <!--[선택]가맹점 고객 주소 -->
58
+        <input type="hidden" id="sp_user_define1"      name="sp_user_define1"      value="<%=request.getParameter("sp_user_define1")      %>" /> <!--[선택]가맹점 필드1 -->
59
+        <input type="hidden" id="sp_user_define2"      name="sp_user_define2"      value="<%=request.getParameter("sp_user_define2")      %>" /> <!--[선택]가맹점 필드2 -->
60
+        <input type="hidden" id="sp_user_define3"      name="sp_user_define3"      value="<%=request.getParameter("sp_user_define3")      %>" /> <!--[선택]가맹점 필드3 -->
61
+        <input type="hidden" id="sp_user_define4"      name="sp_user_define4"      value="<%=request.getParameter("sp_user_define4")      %>" /> <!--[선택]가맹점 필드4 -->
62
+        <input type="hidden" id="sp_user_define5"      name="sp_user_define5"      value="<%=request.getParameter("sp_user_define5")      %>" /> <!--[선택]가맹점 필드5 -->
63
+        <input type="hidden" id="sp_user_define6"      name="sp_user_define6"      value="<%=request.getParameter("sp_user_define6")      %>" /> <!--[선택]가맹점 필드6 -->
64
+        <input type="hidden" id="sp_mobilereserved1"   name="sp_mobilereserved1"   value="<%=request.getParameter("sp_mobilereserved1")   %>" /> <!--[선택]가맹점 여유필드1        -->    
65
+        <input type="hidden" id="sp_mobilereserved2"   name="sp_mobilereserved2"   value="<%=request.getParameter("sp_mobilereserved2")   %>" /> <!--[선택]가맹점 여유필드2        -->    
66
+        <input type="hidden" id="sp_reserved1"         name="sp_reserved1"         value="<%=request.getParameter("sp_reserved1")         %>" /> <!--[선택]가맹점 여유필드1        -->    
67
+        <input type="hidden" id="sp_reserved2"         name="sp_reserved2"         value="<%=request.getParameter("sp_reserved2")         %>" /> <!--[선택]가맹점 여유필드2        -->    
68
+        <input type="hidden" id="sp_reserved3"         name="sp_reserved3"         value="<%=request.getParameter("sp_reserved3")         %>" /> <!--[선택]가맹점 여유필드3        -->    
69
+        <input type="hidden" id="sp_reserved4"         name="sp_reserved4"         value="<%=request.getParameter("sp_reserved4")         %>" /> <!--[선택]가맹점 여유필드4        -->            
70
+        <input type="hidden" id="sp_product_type"      name="sp_product_type"      value="<%=request.getParameter("sp_product_type")      %>" /> <!--[선택]상품정보구분 -->
71
+        <input type="hidden" id="sp_product_expr"      name="sp_product_expr"      value="<%=request.getParameter("sp_product_expr")      %>" /> <!--[선택]서비스 기간 -->
72
+        <input type="hidden" id="sp_app_scheme"        name="sp_app_scheme"        value="<%=request.getParameter("sp_app_scheme")        %>" /> <!--[선택]가맹점 APP scheme -->  
73
+        <input type="hidden" id="sp_window_type"       name="sp_window_type"       value="<%=request.getParameter("sp_window_type")       %>" /> <!--[선택]윈도우타입 -->
74
+        <input type="hidden" id="sp_disp_cash_yn"      name="sp_disp_cash_yn"      value="<%=request.getParameter("sp_disp_cash_yn")      %>" /> <!--[선택]현금영수증 화면표시여부(Y/N)--> 
75
+                                                                                   
76
+        <!--신용카드-->                                                                           
77
+        <input type="hidden" id="sp_usedcard_code"     name="sp_usedcard_code"     value="<%=request.getParameter("sp_usedcard_code")     %>" /> <!--[선택]사용가능카드 LIST -->
78
+        <input type="hidden" id="sp_quota"             name="sp_quota"             value="<%=request.getParameter("sp_quota")             %>" /> <!--[선택]할부개월 -->
79
+        <input type="hidden" id="sp_os_cert_flag"      name="sp_os_cert_flag"      value="<%=request.getParameter("sp_os_cert_flag")      %>" /> <!--[선택]해외안심클릭 사용여부-->
80
+        <input type="hidden" id="sp_noinst_flag"       name="sp_noinst_flag"       value="<%=request.getParameter("sp_noinst_flag")       %>" /> <!--[선택]무이자 여부(Y/N) -->
81
+        <input type="hidden" id="sp_noinst_term"       name="sp_noinst_term"       value="<%=request.getParameter("sp_noinst_term")       %>" /> <!--[선택]무이자 기간 -->
82
+        <input type="hidden" id="sp_set_point_card_yn" name="sp_set_point_card_yn" value="<%=request.getParameter("sp_set_point_card_yn") %>" /> <!--[선택]카드사포인트 사용여부(Y/N) -->
83
+        <input type="hidden" id="sp_point_card"        name="sp_point_card"        value="<%=request.getParameter("sp_point_card")        %>" /> <!--[선택]포인트카드 LIST(카드코드-더할 할부개월) -->
84
+        <input type="hidden" id="sp_join_cd"           name="sp_join_cd"           value="<%=request.getParameter("sp_join_cd")           %>" /> <!--[선택]조인코드 -->
85
+        <input type="hidden" id="sp_kmotion_useyn"     name="sp_kmotion_useyn"     value="<%=request.getParameter("sp_kmotion_useyn")     %>" /> <!--[선택]국민앱카드 사용유무 -->
86
+                                                                                                                                                      
87
+        <!--가상계좌-->
88
+        <input type="hidden" id="sp_vacct_bank"       name="sp_vacct_bank"         value="<%=request.getParameter("sp_vacct_bank")        %>" /> <!--[선택]가상계좌 사용가능한 은행 LIST -->
89
+        <input type="hidden" id="sp_vacct_end_date"   name="sp_vacct_end_date"     value="<%=request.getParameter("sp_vacct_end_date")    %>" /> <!--[선택]입금 만료 날짜 -->
90
+        <input type="hidden" id="sp_vacct_end_time"   name="sp_vacct_end_time"     value="<%=request.getParameter("sp_vacct_end_time")    %>" /> <!--[선택]입금 만료 시간 -->
91
+                   
92
+        <!--선불카드-->
93
+        <input type="hidden" id="sp_prepaid_cp"       name="sp_prepaid_cp"         value="<%=request.getParameter("sp_prepaid_cp")        %>" /> <!--[선택]선불카드 CP -->
94
+             
95
+     </form>
96
+</body>
97
+</html>

+ 133 - 0
src/main/webapp/mobile/app/easypay/oqpo/mobile_order_res_submit.jsp

@@ -0,0 +1,133 @@
1
+<!--[submit]인증응답 페이지-->
2
+<!--메뉴얼 '인증페이지 작성' 인증응답 파라미터 포함.-->
3
+
4
+<!DOCTYPE html>
5
+<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
6
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
7
+<%
8
+/* -------------------------------------------------------------------------- */
9
+/* 캐쉬 사용안함                                                              */
10
+/* -------------------------------------------------------------------------- */
11
+response.setHeader("cache-control","no-cache");
12
+response.setHeader("expires","-1");
13
+response.setHeader("pragma","no-cache");
14
+
15
+request.setCharacterEncoding("utf-8");
16
+%>
17
+<%!
18
+    /*
19
+     * 파라미터 체크 메소드
20
+     */
21
+    public String getNullToSpace(String param) 
22
+    {
23
+        return (param == null) ? "" : param.trim();
24
+    }
25
+%>
26
+<c:set var="contextPath" value="${pageContext.request.contextPath}" /> 
27
+<html lang="ko" xmlns="http://www.w3.org/1999/xhtml">
28
+<head>
29
+<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
30
+<meta name="robots" content="noindex, nofollow" />
31
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
32
+<script>
33
+    /*--KICC 서버로부터 인증응답 파라미터 수신--*/
34
+    window.onload = function()
35
+    {
36
+        try {
37
+        } catch (err) {
38
+        }
39
+        console.log(res_cd + " : <%=getNullToSpace(request.getParameter("sp_res_cd"))           %>");
40
+        // <!--공통-->
41
+        window.document.getElementById("sp_res_cd").value             = "<%=getNullToSpace(request.getParameter("sp_res_cd"))           %>";  // [필수]응답코드
42
+        window.document.getElementById("sp_res_msg").value            = "<%=getNullToSpace(request.getParameter("sp_res_msg"))          %>";  // [필수]응답메세지
43
+        window.document.getElementById("sp_tr_cd").value              = "<%=getNullToSpace(request.getParameter("sp_tr_cd"))            %>";  // [필수]결제창 요청구분
44
+        window.document.getElementById("sp_ret_pay_type").value       = "<%=getNullToSpace(request.getParameter("sp_ret_pay_type"))     %>";  // [필수]결제수단
45
+        window.document.getElementById("sp_trace_no").value           = "<%=getNullToSpace(request.getParameter("sp_trace_no"))         %>";  // [선택]추적번호
46
+        window.document.getElementById("sp_order_no").value           = "<%=getNullToSpace(request.getParameter("sp_order_no"))         %>";  // [필수]가맹점 주문번호
47
+        window.document.getElementById("sp_sessionkey").value         = "<%=getNullToSpace(request.getParameter("sp_sessionkey"))       %>";  // [필수]세션키
48
+        window.document.getElementById("sp_encrypt_data").value       = "<%=getNullToSpace(request.getParameter("sp_encrypt_data"))     %>";  // [필수]암호화전문
49
+        window.document.getElementById("sp_mall_id").value            = "<%=getNullToSpace(request.getParameter("sp_mall_id"))          %>";  // [필수]가맹점 ID
50
+        window.document.getElementById("sp_mobilereserved1").value    = "<%=getNullToSpace(request.getParameter("sp_mobilereserved1"))  %>";  // [선택]여유필드
51
+        window.document.getElementById("sp_mobilereserved2").value    = "<%=getNullToSpace(request.getParameter("sp_mobilereserved2"))  %>";  // [선택]여유필드
52
+        window.document.getElementById("sp_reserved1").value          = "<%=getNullToSpace(request.getParameter("sp_reserved1"))        %>";  // [선택]여유필드
53
+        window.document.getElementById("sp_reserved2").value          = "<%=getNullToSpace(request.getParameter("sp_reserved2"))        %>";  // [선택]여유필드
54
+        window.document.getElementById("sp_reserved3").value          = "<%=getNullToSpace(request.getParameter("sp_reserved3"))        %>";  // [선택]여유필드
55
+        window.document.getElementById("sp_reserved4").value          = "<%=getNullToSpace(request.getParameter("sp_reserved4"))        %>";  // [선택]여유필드
56
+
57
+        // <!--신용카드-->
58
+        window.document.getElementById("sp_card_code").value          = "<%=getNullToSpace(request.getParameter("sp_card_code"))        %>";  // [필수]카드코드
59
+        window.document.getElementById("sp_eci_code").value           = "<%=getNullToSpace(request.getParameter("sp_eci_code"))         %>";  // [선택]ECI코드(MPI인 경우)
60
+        window.document.getElementById("sp_card_req_type").value      = "<%=getNullToSpace(request.getParameter("sp_card_req_type"))    %>";  // [필수]거래구분
61
+        window.document.getElementById("sp_save_useyn").value         = "<%=getNullToSpace(request.getParameter("sp_save_useyn"))       %>";  // [선택]카드사 세이브 여부
62
+        window.document.getElementById("sp_card_prefix").value        = "<%=getNullToSpace(request.getParameter("sp_card_prefix"))      %>";  // [선택]신용카드 Prefix
63
+        window.document.getElementById("sp_card_no_7").value          = "<%=getNullToSpace(request.getParameter("sp_card_no_7"))        %>";  // [선택]신용카드번호 앞7자리
64
+
65
+        // <!--간편결제-->
66
+        window.document.getElementById("sp_spay_cp").value            = "<%=getNullToSpace(request.getParameter("sp_spay_cp"))          %>";  // [선택]간편결제 CP코드
67
+
68
+        // <!--선불카드-->
69
+        window.document.getElementById("sp_prepaid_cp").value         = "<%=getNullToSpace(request.getParameter("sp_prepaid_cp"))       %>";  // [선택]선불카드 CP코드
70
+
71
+        if( "<%=request.getParameter("sp_res_cd") %>" == "0000" )
72
+        {
73
+            // alert('TODO 결제승인처리');
74
+            frm_pay.target = "_self";
75
+            frm_pay.action = "../easypay_request.jsp";
76
+            frm_pay.submit();
77
+        }
78
+        else
79
+        {
80
+            alert( urldecode("<%=request.getParameter("sp_res_cd") %> : <%=request.getParameter("sp_res_msg") %>"));
81
+            // 에러 발생시 어떻게 처리할까?
82
+            // 이전 팝업으로는 돌아갈 수 없다.
83
+            // location.href="./order.jsp";
84
+            history.back(-1);
85
+        }
86
+    }
87
+    
88
+    function urldecode( str ) {
89
+        // 공백 문자인 + 를 처리하기 위해 +('%20') 을 공백으로 치환
90
+        return decodeURIComponent((str + '').replace(/\+/g, '%20'));
91
+    }
92
+</script>
93
+<title>오더퀸 수발주 결제하기</title>
94
+</head>
95
+<body>
96
+<form name="frm_pay" method="post" >
97
+    <!-- [START] 인증응답 필드 -->
98
+
99
+    <!--공통-->
100
+    <input type="hidden" id="sp_res_cd"              name="sp_res_cd"                value="" />         <!-- [필수]응답코드        -->
101
+    <input type="hidden" id="sp_res_msg"             name="sp_res_msg"               value="" />         <!-- [필수]응답메시지      -->
102
+    <input type="hidden" id="sp_tr_cd"               name="sp_tr_cd"                 value="" />         <!-- [필수]결제창 요청구분 -->
103
+    <input type="hidden" id="sp_ret_pay_type"        name="sp_ret_pay_type"          value="" />         <!-- [필수]결제수단        -->
104
+    <input type="hidden" id="sp_trace_no"            name="sp_trace_no"              value="" />         <!-- [선택]추적번호        -->
105
+    <input type="hidden" id="sp_order_no"            name="sp_order_no"              value="" />         <!-- [필수]가맹점 주문번호 -->
106
+    <input type="hidden" id="sp_sessionkey"          name="sp_sessionkey"            value="" />         <!-- [필수]세션키          -->
107
+    <input type="hidden" id="sp_encrypt_data"        name="sp_encrypt_data"          value="" />         <!-- [필수]암호화전문      -->
108
+    <input type="hidden" id="sp_mall_id"             name="sp_mall_id"               value="" />         <!-- [필수]가맹점 ID       -->
109
+    <input type="hidden" id="sp_mobilereserved1"     name="sp_mobilereserved1"       value="" />         <!-- [선택]여유필드        -->
110
+    <input type="hidden" id="sp_mobilereserved2"     name="sp_mobilereserved2"       value="" />         <!-- [선택]여유필드        -->
111
+    <input type="hidden" id="sp_reserved1"           name="sp_reserved1"             value="" />         <!-- [선택]여유필드        -->
112
+    <input type="hidden" id="sp_reserved2"           name="sp_reserved2"             value="" />         <!-- [선택]여유필드        -->
113
+    <input type="hidden" id="sp_reserved3"           name="sp_reserved3"             value="" />         <!-- [선택]여유필드        -->
114
+    <input type="hidden" id="sp_reserved4"           name="sp_reserved4"             value="" />         <!-- [선택]여유필드        -->
115
+
116
+    <!--신용카드-->
117
+    <input type="hidden" id="sp_card_code"            name="sp_card_code"            value="" />         <!-- [필수]카드코드               -->
118
+    <input type="hidden" id="sp_eci_code"             name="sp_eci_code"             value="" />         <!-- [선택]ECI코드(MPI인 경우)    -->
119
+    <input type="hidden" id="sp_card_req_type"        name="sp_card_req_type"        value="" />         <!-- [필수]거래구분               -->
120
+    <input type="hidden" id="sp_save_useyn"           name="sp_save_useyn"           value="" />         <!-- [선택]카드사 세이브 여부     -->
121
+    <input type="hidden" id="sp_card_prefix"          name="sp_card_prefix"          value="" />         <!-- [선택]신용카드 Prefix        -->
122
+    <input type="hidden" id="sp_card_no_7"            name="sp_card_no_7"            value="" />         <!-- [선택]신용카드번호 앞7자리   -->
123
+
124
+    <!--간편결제-->
125
+    <input type="hidden" id="sp_spay_cp"              name="sp_spay_cp"              value="" />          <!-- [선택]간편결제 CP코드 -->
126
+
127
+    <!--선불카드-->
128
+    <input type="hidden" id="sp_prepaid_cp"           name="sp_prepaid_cp"           value="" />          <!-- [선택]선불카드 CP코드 -->
129
+
130
+    <!-- [END] 인증응답 필드  -->
131
+</form>
132
+</body>
133
+</html>

+ 1 - 1
src/main/webapp/mobile/app/main.html

@@ -104,7 +104,7 @@
104 104
 						<div class="panel-heading">
105 105
 							<span class="fnMenuNm">버전</span>
106 106
 							<span class="fnVersion ver">1.0.3</span>
107
-							<!--<span class="show">최신버전</span>-->
107
+							<span class="show">최신버전</span>
108 108
 						</div>
109 109
 					</li>
110 110
 				</ul>

+ 10 - 9
src/main/webapp/mobile/app/mloanmng/MLOANMNG02010.html

@@ -102,6 +102,7 @@
102 102
 	<div id="ITP_AJAX_MLOANMNG02010_PAY_CONTAINER" style="display: none;">
103 103
 		<form id="ITP_FORM_MLOANMNG02010_PAY" class="form-horizontal" onsubmit="return false;">
104 104
 			<input type="hidden" id="ITP_FORM_MLOANMNG02010_PAY_BRAND_ID" name="brandId" value="">
105
+			<input type="hidden" id="ITP_FORM_MLOANMNG02010_PAY_BRAND_NM" name="brandNm" value="">
105 106
 			<input type="hidden" id="ITP_FORM_MLOANMNG02010_PAY_STORE_ID" name="storeId" value="">
106 107
 			<input type="hidden" id="ITP_FORM_MLOANMNG02010_PAY_PO_ORD_NO" name="poOrdNo" value="">
107 108
 			<input type="hidden" id="ITP_FORM_MLOANMNG02010_PAY_ORD_NM" name="ordNm" value="">
@@ -143,7 +144,7 @@
143 144
 					</div>
144 145
 					<div class="list_info" style="padding-top:10px;">
145 146
 						<div class="pay_info fnItemNm"></div>
146
-						<input id="ITP_FORM_MLOANMNG02010_PAY_GOODS_AMT" name="goodsAmt" type="text" readonly>
147
+						<input id="ITP_FORM_MLOANMNG02010_PAY_GOODS_AMT" name="goodsAmt" value="1000" type="text" readonly>
147 148
 					</div>
148 149
 				</div>
149 150
 				<div class="list_line">
@@ -162,7 +163,7 @@
162 163
 						<label>휴대전화번호 *</label>
163 164
 					</div>
164 165
 					<div class="list_info" style="padding-top:10px;">
165
-						<input id="ITP_FORM_MLOANMNG02010_PAY_ORD_TEL" name="ordTel" type="text" data-check-required="empty">
166
+						<input id="ITP_FORM_MLOANMNG02010_PAY_ORD_TEL" name="ordTel" value="010-2329-8816" type="text" data-check-required="empty" data-key-up="number">
166 167
 					</div>
167 168
 				</div>
168 169
 				<div class="list_line border">
@@ -306,43 +307,43 @@
306 307
 				<div class="line">
307 308
 					<label>브랜드명</label>
308 309
 					<div class="float_left">
309
-						<div class="fnBrandNm">A 브랜드명</div>
310
+						<div class="fnBrandNm"></div>
310 311
 					</div>
311 312
 				</div>
312 313
 				<div class="line">
313 314
 					<label>매장명</label>
314 315
 					<div class="float_left">
315
-						<div class="fnStoreNm">A 매장명</div>
316
+						<div class="fnStoreNm"></div>
316 317
 					</div>
317 318
 				</div>
318 319
 				<div class="line">
319 320
 					<label>입금금액</label>
320 321
 					<div class="float_left">
321
-						<div class="fnDpstAmt">1,000,000</div>
322
+						<div class="fnDpstAmt"></div>
322 323
 					</div>
323 324
 				</div>
324 325
 				<div class="line">
325 326
 					<label>입금일자</label>
326 327
 					<div class="float_left">
327
-						<div class="fnDpstDt">2022.10.05</div>
328
+						<div class="fnDpstDt"></div>
328 329
 					</div>
329 330
 				</div>
330 331
 				<div class="line">
331 332
 					<label>입금자명</label>
332 333
 					<div class="float_left">
333
-						<div class="fnDpstNm">홍길동</div>
334
+						<div class="fnDpstNm"></div>
334 335
 					</div>
335 336
 				</div>
336 337
 				<div class="line">
337 338
 					<label>입금은행</label>
338 339
 					<div class="float_left">
339
-						<div class="fnDpstBnk">우리은행</div>
340
+						<div class="fnDpstBnk"></div>
340 341
 					</div>
341 342
 				</div>
342 343
 				<div class="line">
343 344
 					<label>입금계좌번호</label>
344 345
 					<div class="float_left">
345
-						<div class="fnDpstAcctNo">11122233333344</div>
346
+						<div class="fnDpstAcctNo"></div>
346 347
 					</div>
347 348
 				</div>
348 349
 				<div class="line" style="height: 180px;">

+ 235 - 0
src/main/webapp/mobile/app/payment.html

@@ -0,0 +1,235 @@
1
+<!DOCTYPE html>
2
+<html lang="ko">
3
+<head>
4
+	<meta charset="UTF-8">
5
+	<meta http-equiv="Content-Type" content="text/html; utf-8">
6
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
7
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
8
+	<meta name="format-detection" content="telephone=no">
9
+	<title>모바일 수발주</title>
10
+
11
+	<script>
12
+		VIEW_PAGE = 'PAY';
13
+	</script>
14
+
15
+	<script src="../js/properties.js"></script>
16
+	<script src="../../js/require.min.js" data-main="../js/config.js"></script>
17
+</head>
18
+<body>
19
+<div id="ITP_BIZPOP_PO_PAYMENT">
20
+	<div>
21
+		<form name="frm_pay" id="frm_pay" method="post" action="">
22
+			<input type="hidden" id="poOrdNo" name="poOrdNo" value="" />
23
+			<input type="hidden" id="payTpCd" name="payTpCd" value="" />
24
+			<input type="hidden" id="sttlMgntUnqNoList" name="sttlMgntUnqNoList" value="" />
25
+			<input type="hidden" id="brandId" name="brandId" value="" />
26
+			<input type="hidden" id="storeId" name="storeId" value="" />
27
+
28
+			<input type="hidden" id="kiccActionWebUrl" 		name="kiccActionWebUrl"			value="">
29
+			<input type="hidden" id="kiccActionMobileUrl" 	name="kiccActionMobileUrl"		value="">
30
+
31
+			<!-- WEB -->
32
+
33
+			<!--------------------------->
34
+			<!-- ::: 공통 인증 요청 값 -->
35
+			<!--------------------------->
36
+
37
+			<input type="hidden" id="EP_mall_nm"        name="EP_mall_nm"           value="">         <!-- 브랜드그룹명-->
38
+			<input type="hidden" id="EP_currency"       name="EP_currency"          value="00">       <!-- 통화코드 // 00 : 원화-->
39
+			<input type="hidden" id="EP_return_url"     name="EP_return_url"        value="">         <!-- 브랜드그룹 CALLBACK URL // -->
40
+			<input type="hidden" id="EP_ci_url"         name="EP_ci_url"            value="">         <!-- CI LOGO URL // -->
41
+			<input type="hidden" id="EP_lang_flag"      name="EP_lang_flag"         value="KOR">      <!-- 언어 // -->
42
+			<input type="hidden" id="EP_charset"        name="EP_charset"           value="UTF-8">    <!-- 브랜드그룹 CharSet // EUC-KR,UTF-8 사용시 대문자 이용-->
43
+			<input type="hidden" id="EP_user_id"        name="EP_user_id"           value="">         <!-- 브랜드그룹 고객ID // -->
44
+			<input type="hidden" id="EP_memb_user_no"   name="EP_memb_user_no"      value="">         <!-- 브랜드그룹 고객일련번호 // -->
45
+			<input type="hidden" id="EP_user_nm"        name="EP_user_nm"           value="">         <!-- 브랜드그룹 고객명 // -->
46
+			<input type="hidden" id="EP_user_mail"      name="EP_user_mail"         value="">         <!-- 브랜드그룹 고객 E-mail // -->
47
+			<input type="hidden" id="EP_user_phone1"    name="EP_user_phone1"       value="">         <!-- 브랜드그룹 고객 연락처1 // -->
48
+			<input type="hidden" id="EP_user_phone2"    name="EP_user_phone2"       value="">         <!-- 브랜드그룹 고객 연락처2 // -->
49
+			<input type="hidden" id="EP_user_addr"      name="EP_user_addr"         value="">         <!-- 브랜드그룹 고객 주소 // -->
50
+			<input type="hidden" id="EP_user_define1"   name="EP_user_define1"      value="">         <!-- 브랜드그룹 필드1 // -->
51
+			<input type="hidden" id="EP_user_define2"   name="EP_user_define2"      value="">         <!-- 브랜드그룹 필드2 // -->
52
+			<input type="hidden" id="EP_user_define3"   name="EP_user_define3"      value="">         <!-- 브랜드그룹 필드3 // -->
53
+			<input type="hidden" id="EP_user_define4"   name="EP_user_define4"      value="">         <!-- 브랜드그룹 필드4 // -->
54
+			<input type="hidden" id="EP_user_define5"   name="EP_user_define5"      value="">         <!-- 브랜드그룹 필드5 // -->
55
+			<input type="hidden" id="EP_user_define6"   name="EP_user_define6"      value="">         <!-- 브랜드그룹 필드6 // -->
56
+			<input type="hidden" id="EP_product_type"   name="EP_product_type"      value="0">        <!-- 상품정보구분 // -->
57
+			<input type="hidden" id="EP_product_expr"   name="EP_product_expr"      value="">         <!-- 서비스 기간 // (YYYYMMDD) -->
58
+			<input type="hidden" id="EP_disp_cash_yn"   name="EP_disp_cash_yn"      value="">         <!-- 현금영수증 화면표시여부 //미표시 : "N", 그외: DB조회 -->
59
+
60
+
61
+			<!--------------------------->
62
+			<!-- ::: 카드 인증 요청 값 -->
63
+			<!--------------------------->
64
+
65
+			<input type="hidden" id="EP_usedcard_code"      name="EP_usedcard_code"     value="">      <!-- 사용가능한 카드 LIST // FORMAT->카드코드:카드코드: ... :카드코드 EXAMPLE->029:027:031 // 빈값 : DB조회-->
66
+			<input type="hidden" id="EP_quota"              name="EP_quota"             value="">      <!-- 할부개월 (카드코드-할부개월) -->
67
+			<input type="hidden" id="EP_os_cert_flag"       name="EP_os_cert_flag"      value="2">     <!-- 해외안심클릭 사용여부(변경불가) // -->
68
+			<input type="hidden" id="EP_noinst_flag"        name="EP_noinst_flag"       value="">      <!-- 무이자 여부 (Y/N) // -->
69
+			<input type="hidden" id="EP_noinst_term"        name="EP_noinst_term"       value="">      <!-- 무이자 기간 (카드코드-더할할부개월) // -->
70
+			<input type="hidden" id="EP_set_point_card_yn"  name="EP_set_point_card_yn" value="">      <!-- 카드사포인트 사용여부 (Y/N) // -->
71
+			<input type="hidden" id="EP_point_card"         name="EP_point_card"        value="">      <!-- 포인트카드 LIST  // -->
72
+			<input type="hidden" id="EP_join_cd"            name="EP_join_cd"           value="">      <!-- 조인코드 // -->
73
+			<input type="hidden" id="EP_kmotion_useyn"      name="EP_kmotion_useyn"     value="Y">     <!-- 국민앱카드 사용유무 (Y/N)// -->
74
+
75
+			<!------------------------------->
76
+			<!-- ::: 가상계좌 인증 요청 값 -->
77
+			<!------------------------------->
78
+
79
+			<input type="hidden" id="EP_vacct_bank"         name="EP_vacct_bank"        value="">      <!-- 가상계좌 사용가능한 은행 LIST // -->
80
+			<input type="hidden" id="EP_vacct_end_date"     name="EP_vacct_end_date"    value="">      <!-- 입금 만료 날짜 // -->
81
+			<input type="hidden" id="EP_vacct_end_time"     name="EP_vacct_end_time"    value="">      <!-- 입금 만료 시간 // -->
82
+
83
+			<!------------------------------->
84
+			<!-- ::: 선불카드 인증 요청 값 -->
85
+			<!------------------------------->
86
+
87
+			<input type="hidden" id="EP_prepaid_cp"         name="EP_prepaid_cp"        value="">      <!-- 선불카드 CP // FORMAT->코드:코드: ... :코드 EXAMPLE->CCB:ECB // 빈값 : DB조회-->
88
+
89
+			<!--------------------------------->
90
+			<!-- ::: 인증응답용 인증 요청 값 -->
91
+			<!--------------------------------->
92
+
93
+			<input type="hidden" id="EP_res_cd"             name="EP_res_cd"            value="">      <!--  응답코드 // -->
94
+			<input type="hidden" id="EP_res_msg"            name="EP_res_msg"           value="">      <!--  응답메세지 // -->
95
+			<input type="hidden" id="EP_tr_cd"              name="EP_tr_cd"             value="">      <!--  결제창 요청구분 // -->
96
+			<input type="hidden" id="EP_ret_pay_type"       name="EP_ret_pay_type"      value="">      <!--  결제수단 // -->
97
+			<input type="hidden" id="EP_ret_complex_yn"     name="EP_ret_complex_yn"    value="">      <!--  복합결제 여부 (Y/N) // -->
98
+			<input type="hidden" id="EP_card_code"          name="EP_card_code"         value="">      <!--  카드코드 (ISP:KVP카드코드 MPI:카드코드) // -->
99
+			<input type="hidden" id="EP_eci_code"           name="EP_eci_code"          value="">      <!--  MPI인 경우 ECI코드 // -->
100
+			<input type="hidden" id="EP_card_req_type"      name="EP_card_req_type"     value="">      <!--  거래구분 // -->
101
+			<input type="hidden" id="EP_save_useyn"         name="EP_save_useyn"        value="">      <!--  카드사 세이브 여부 (Y/N) // -->
102
+			<input type="hidden" id="EP_trace_no"           name="EP_trace_no"          value="">      <!--  추적번호 // -->
103
+			<input type="hidden" id="EP_sessionkey"         name="EP_sessionkey"        value="">      <!--  세션키 // -->
104
+			<input type="hidden" id="EP_encrypt_data"       name="EP_encrypt_data"      value="">      <!--  암호화전문 // -->
105
+			<input type="hidden" id="EP_spay_cp"            name="EP_spay_cp"           value="">      <!--  간편결제 CP 코드 // -->
106
+			<input type="hidden" id="EP_card_prefix"        name="EP_card_prefix"       value="">      <!--  신용카드prefix // -->
107
+			<input type="hidden" id="EP_card_no_7"          name="EP_card_no_7"         value="">      <!--  신용카드번호 앞7자리 // -->
108
+
109
+			<!--------------------------------->
110
+			<!-- ::: 브랜드그룹 정보 -->
111
+			<!--------------------------------->
112
+
113
+			<input type="hidden" id="EP_mall_id"          	name="EP_mall_id"         	value="">      	   <!--  브랜드그룹ID // -->
114
+
115
+			<!--------------------------------->
116
+			<!-- ::: 결제 정보 -->
117
+			<!--------------------------------->
118
+
119
+			<input type="hidden" id="EP_pay_type"           name="EP_pay_type"           value="">      	<!--  결제수단 // -->
120
+			<input type="hidden" id="EP_window_type"        name="EP_window_type"        value="popup">    <!--  윈도우타입 (iframe[default], popup) // -->
121
+			<input type="hidden" id="EP_cert_type"          name="EP_cert_type"          value="">      	<!--  인증타입 (일반-"", 인증-"21", 비인증-"22") // -->
122
+
123
+			<!--------------------------------->
124
+			<!-- ::: 주문 정보 -->
125
+			<!--------------------------------->
126
+
127
+			<input type="hidden" id="EP_order_no"         	name="EP_order_no"           value="">      	<!--  주문번호 // -->
128
+			<input type="hidden" id="EP_product_nm"         name="EP_product_nm"         value="">      	<!--  상품명 // -->
129
+			<input type="hidden" id="EP_product_amt"        name="EP_product_amt"        value="">      	<!--  상품금액 // -->
130
+
131
+			<!-- // WEB END -->
132
+
133
+			<!-- MOBILE -->
134
+			<!-- [START] 인증요청 필드 -->     <!--  <table>내에도 일부 파라미터 존재합니다.-->
135
+
136
+			<!--------------------------->
137
+			<!-- ::: 공통 인증 요청 값 -->
138
+			<!--------------------------->
139
+			<input type="hidden" id="sp_mall_nm"           name="sp_mall_nm"           value="" />               <!--[선택]브랜드그룹명 -->
140
+			<input type="hidden" id="sp_order_no"          name="sp_order_no"          value="" />               <!--[필수]브랜드그룹 주문번호(인증응답) -->
141
+			<input type="hidden" id="sp_currency"          name="sp_currency"          value="00" />             <!--[필수]통화코드(수정불가) -->
142
+			<input type="hidden" id="sp_return_url"        name="sp_return_url"        value="" />         		 <!--[필수]브랜드그룹 return URL -->
143
+			<input type="hidden" id="sp_lang_flag"         name="sp_lang_flag"         value="KOR" />            <!--[선택]언어 -->
144
+			<input type="hidden" id="sp_charset"           name="sp_charset"           value="UTF-8" />          <!--[선택]브랜드그룹 charset -->
145
+			<input type="hidden" id="sp_user_id"           name="sp_user_id"           value="" />               <!--[선택]브랜드그룹 고객ID -->
146
+			<input type="hidden" id="sp_memb_user_no"      name="sp_memb_user_no"      value="" />               <!--[선택]브랜드그룹 고객일련번호 -->
147
+			<input type="hidden" id="sp_user_nm"           name="sp_user_nm"           value="" />           	 <!--[선택]브랜드그룹 고객명 -->
148
+			<input type="hidden" id="sp_user_mail"         name="sp_user_mail"         value="" />           	 <!--[선택]브랜드그룹 고객 E-mail -->
149
+			<input type="hidden" id="sp_user_phone1"       name="sp_user_phone1"       value="" />               <!--[선택]브랜드그룹 고객 연락처1 -->
150
+			<input type="hidden" id="sp_user_phone2"       name="sp_user_phone2"       value="" />               <!--[선택]브랜드그룹 고객 연락처2 -->
151
+			<input type="hidden" id="sp_user_addr"         name="sp_user_addr"         value="" />               <!--[선택]브랜드그룹 고객 주소 -->
152
+			<input type="hidden" id="sp_user_define1"      name="sp_user_define1"      value="" />               <!--[선택]브랜드그룹 필드1 -->
153
+			<input type="hidden" id="sp_user_define2"      name="sp_user_define2"      value="" />               <!--[선택]브랜드그룹 필드2 -->
154
+			<input type="hidden" id="sp_user_define3"      name="sp_user_define3"      value="" />               <!--[선택]브랜드그룹 필드3 -->
155
+			<input type="hidden" id="sp_user_define4"      name="sp_user_define4"      value="" />               <!--[선택]브랜드그룹 필드4 -->
156
+			<input type="hidden" id="sp_user_define5"      name="sp_user_define5"      value="" />               <!--[선택]브랜드그룹 필드5 -->
157
+			<input type="hidden" id="sp_user_define6"      name="sp_user_define6"      value="" />               <!--[선택]브랜드그룹 필드6 -->
158
+			<input type="hidden" id="sp_product_type"      name="sp_product_type"      value="" />               <!--[선택]상품정보구분 -->
159
+			<input type="hidden" id="sp_product_expr"      name="sp_product_expr"      value="" />               <!--[선택]서비스 기간 -->
160
+			<input type="hidden" id="sp_app_scheme"        name="sp_app_scheme"        value="" />               <!--[선택]브랜드그룹 APP scheme -->
161
+
162
+			<input type="hidden" id="sp_mall_id"		   name="sp_mall_id"		   value="" />               <!--[필수]브랜드그룹 ID -->
163
+			<input type="hidden" id="sp_pay_type"      	   name="sp_pay_type"   	   value="" />               <!--[필수]결제수단 -->
164
+			<input type="hidden" id="sp_cert_type"	       name="sp_cert_type"   	   value="" />               <!--[선택]인증타입 -->
165
+			<input type="hidden" id="sp_product_nm"    	   name="sp_product_nm"   	   value="" />               <!--[필수]상품명 -->
166
+			<input type="hidden" id="sp_product_amt"   	   name="sp_product_amt"       value="" />               <!--[필수]상품금액 -->
167
+			<input type="hidden" id="sp_window_type"       name="sp_window_type"       value="" />               <!--[선택]윈도우타입 -->
168
+			<input type="hidden" id="sp_disp_cash_yn"      name="sp_disp_cash_yn"      value="" />               <!--[선택]현금영수증 화면표시여부 -->
169
+			<input type="hidden" id="sp_kmotion_useyn"     name="sp_kmotion_useyn"     value="" />               <!--[선택]국민앱카드 사용유무 -->
170
+
171
+
172
+			<!--신용카드-->
173
+			<input type="hidden" id="sp_usedcard_code"     name="sp_usedcard_code"     value="" />               <!--[선택]사용가능카드 LIST -->
174
+			<input type="hidden" id="sp_quota"             name="sp_quota"             value="" />               <!--[선택]할부개월 -->
175
+			<input type="hidden" id="sp_os_cert_flag"      name="sp_os_cert_flag"      value="2" />               <!--[선택]해외안심클릭 사용여부-->
176
+			<input type="hidden" id="sp_noinst_flag"       name="sp_noinst_flag"       value="" />               <!--[선택]무이자 여부(Y/N)-->
177
+			<input type="hidden" id="sp_noinst_term"       name="sp_noinst_term"       value="" />               <!--[선택]무이자 기간 -->
178
+			<input type="hidden" id="sp_set_point_card_yn" name="sp_set_point_card_yn" value="" />               <!--[선택]카드사포인트 사용여부(Y/N)-->
179
+			<input type="hidden" id="sp_point_card"        name="sp_point_card"        value="" />               <!--[선택]포인트카드 LIST(카드코드-더할 할부개월) -->
180
+			<input type="hidden" id="sp_join_cd"           name="sp_join_cd"           value="" />               <!--[선택]조인코드 -->
181
+
182
+			<!--가상계좌-->
183
+			<input type="hidden" id="sp_vacct_bank"        name="sp_vacct_bank"         value="" />               <!--[선택]가상계좌 사용가능한 은행 LIST -->
184
+			<input type="hidden" id="sp_vacct_end_date"    name="sp_vacct_end_date"     value="" />               <!--[선택]입금 만료 날짜 -->
185
+			<input type="hidden" id="sp_vacct_end_time"    name="sp_vacct_end_time"     value="" />               <!--[선택]입금 만료 시간 -->
186
+
187
+			<!--선불카드-->
188
+			<input type="hidden" id="sp_prepaid_cp"        name="sp_prepaid_cp"         value="" />               <!--[선택]선불카드 CP -->
189
+
190
+			<!-- [END] 인증요청 필드  -->
191
+
192
+			<!-- [START] 인증응답 필드 -->
193
+
194
+			<!--------------------------->
195
+			<!-- ::: 공통 응답 값 -->
196
+			<!--------------------------->
197
+			<input type="hidden" id="sp_res_cd"              name="sp_res_cd"                value="" />         <!-- [필수]응답코드        -->
198
+			<input type="hidden" id="sp_res_msg"             name="sp_res_msg"               value="" />         <!-- [필수]응답메시지      -->
199
+			<input type="hidden" id="sp_tr_cd"               name="sp_tr_cd"                 value="" />         <!-- [필수]결제창 요청구분 -->
200
+			<input type="hidden" id="sp_ret_pay_type"        name="sp_ret_pay_type"          value="" />         <!-- [필수]결제수단        -->
201
+			<input type="hidden" id="sp_trace_no"            name="sp_trace_no"              value="" />         <!-- [선택]추적번호        -->
202
+			<!-- 브랜드그룹 주문번호 인증요청 필드에 존재.                                                                [필수]브랜드그룹 주문번호 -->
203
+			<input type="hidden" id="sp_sessionkey"          name="sp_sessionkey"            value="" />         <!-- [필수]세션키          -->
204
+			<input type="hidden" id="sp_encrypt_data"        name="sp_encrypt_data"          value="" />         <!-- [필수]암호화전문      -->
205
+			<!-- 브랜드그룹 ID  인증요청 필드에 존재.                                                                 [필수]브랜드그룹 ID       -->
206
+			<input type="hidden" id="sp_mobilereserved1"     name="sp_mobilereserved1"       value="" />         <!-- [선택]여유필드        -->
207
+			<input type="hidden" id="sp_mobilereserved2"     name="sp_mobilereserved2"       value="" />         <!-- [선택]여유필드        -->
208
+			<input type="hidden" id="sp_reserved1"           name="sp_reserved1"             value="" />         <!-- [선택]여유필드        -->
209
+			<input type="hidden" id="sp_reserved2"           name="sp_reserved2"             value="" />         <!-- [선택]여유필드        -->
210
+			<input type="hidden" id="sp_reserved3"           name="sp_reserved3"             value="" />         <!-- [선택]여유필드        -->
211
+			<input type="hidden" id="sp_reserved4"           name="sp_reserved4"             value="" />         <!-- [선택]여유필드        -->
212
+
213
+			<!--신용카드-->
214
+			<input type="hidden" id="sp_card_code"            name="sp_card_code"            value="" />         <!-- [필수]카드코드               -->
215
+			<input type="hidden" id="sp_eci_code"             name="sp_eci_code"             value="" />         <!-- [선택]ECI코드(MPI인 경우)    -->
216
+			<input type="hidden" id="sp_card_req_type"        name="sp_card_req_type"        value="" />         <!-- [필수]거래구분               -->
217
+			<input type="hidden" id="sp_save_useyn"           name="sp_save_useyn"           value="" />         <!-- [선택]카드사 세이브 여부     -->
218
+			<input type="hidden" id="sp_card_prefix"          name="sp_card_prefix"          value="" />         <!-- [선택]신용카드 Prefix        -->
219
+			<input type="hidden" id="sp_card_no_7"            name="sp_card_no_7"            value="" />         <!-- [선택]신용카드번호 앞7자리   -->
220
+
221
+			<!--간편결제-->
222
+			<input type="hidden" id="sp_spay_cp"              name="sp_spay_cp"              value="" />          <!-- [선택]간편결제 CP코드 -->
223
+
224
+			<!--선불카드-->
225
+			<input type="hidden" id="sp_prepaid_cp"           name="sp_prepaid_cp"           value="" />          <!-- [선택]선불카드 CP코드 -->
226
+
227
+			<!-- [END] 인증응답 필드  -->
228
+			<!-- // MOBILE END -->
229
+		</form>
230
+	</div>
231
+	<script src="../js/app/payment.js"></script>
232
+	<div id="ITP_POPUP_KICC_JS"></div>
233
+</div>
234
+</body>
235
+</html>

+ 4 - 3
src/main/webapp/mobile/css/style.css

@@ -227,8 +227,7 @@ input .day {margin: 18%; width: 45%; height: 80px; float: right;}
227 227
 #ITP_SIDEBAR .itp_nav.panel-group .panel+.panel {margin-top:0;}
228 228
 #ITP_SIDEBAR .itp_nav .panel-heading {padding:0;}
229 229
 #ITP_SIDEBAR .itp_nav .panel-title {line-height:1.1; border-bottom:1px solid #ddd;}
230
-#ITP_SIDEBAR .itp_nav .panel-title a {font-size:20px; display:block; padding:13px 15px; color:#333;}
231
-#ITP_SIDEBAR .itp_nav .panel-title a:hover{text-decoration: none;}
230
+#ITP_SIDEBAR .itp_nav .panel-title a {font-size:20px; display:block; padding:13px 15px; color:#333; text-decoration: none;}
232 231
 #ITP_SIDEBAR .itp_nav .panel-title a .glyphicon {font-size:12px;}
233 232
 #ITP_SIDEBAR .itp_nav .panel-default {margin-bottom:0; border:none;}
234 233
 #ITP_SIDEBAR .itp_nav * {border-radius:0; border-width:1px 0 1px 0;}
@@ -244,7 +243,9 @@ input .day {margin: 18%; width: 45%; height: 80px; float: right;}
244 243
 #ITP_SIDEBAR .itp_nav .itp_svgs li a .itp_icon_5 {font-size:9px; float:left; margin:4px 6px 0 25px;}
245 244
 #ITP_SIDEBAR .itp_nav .itp_svgs li a .itp_tt {float:left;}
246 245
 
247
-#ITP_SIDEBAR.itp_open_nav .nav_bottom {visibility:visible;}
246
+#ITP_SIDEBAR.itp_open_nav .nav_bottom {position: fixed; width: 70%; left: -0%; background: #eee; opacity: 1; z-index: 13; transition: all 0.5s;}
247
+#ITP_SIDEBAR.itp_open_nav .nav_bottom .fnMenuNm {color:#0000ff;}
248
+#ITP_SIDEBAR.itp_open_nav .nav_bottom .fnVersion {color:#0000ff;}
248 249
 
249 250
 /* 컨텐츠 화면 */
250 251
 

+ 8 - 0
src/main/webapp/mobile/js/app/main.js

@@ -15,3 +15,11 @@ var mobMainObj = {
15 15
 	},
16 16
 
17 17
 };
18
+
19
+function jsBarcodeFn(barcode) {
20
+	mobContentObj.barcode.callbackApp(barcode);
21
+}
22
+
23
+function jsAppBackPressed() {
24
+	mobPageObj.app.backPressed();
25
+}

+ 37 - 10
src/main/webapp/mobile/js/app/mloanmng/ITP_MLOANMNG02010.js

@@ -14,8 +14,12 @@ const API_MOBILE_APPROVE			= '/api/dspt/mng/approve-dspt';		// 승인
14 14
 const API_MOBILE_REJECT				= '/api/dspt/mng/reject-dspt';		// 반려
15 15
 const API_POP_SEARCH_LIST			= '/api/store/pop-grid-list';
16 16
 
17
+// 이지페이 결제 생성
18
+let EASYPAY_PAYMENT_CREATE 			= '/api/easypay/payment/create';
19
+
17 20
 const PAGE_MODE_LIST				= "LIST";
18 21
 const PAGE_MODE_VIEW				= "VIEW";
22
+const PAGE_MODE_PAY					= "PAY";
19 23
 
20 24
 let mobPageObj = {
21 25
 	viewMode: PAGE_MODE_LIST,
@@ -46,6 +50,7 @@ let mobPageObj = {
46 50
 				$('#ITP_FORM_MLOANMNG02010_LIST_SEARCH #ITP_BTN_MLOANMNG02010_LIST_SEARCH_RTN_PLACE').hide();
47 51
 				$('#ITP_FORM_MLOANMNG02010_LIST_SEARCH #ITP_BTN_MLOANMNG02010_LIST_DELETE_RTN_PLACE').hide();
48 52
 			}
53
+			itp_fn_form_event.onKeyup('#ITP_FORM_MLOANMNG02010_PAY');
49 54
 		},
50 55
 		info: function() {
51 56
 			$('input:hidden[id$="_BRAND_ID"]').val(fn_make_user_info.get('brandId'));
@@ -78,6 +83,15 @@ let mobPageObj = {
78 83
 				return false;
79 84
 			});
80 85
 
86
+			$('button[id^="ITP_BTN_MLOANMNG02010_PAY"]').on('click', function() {
87
+				var id = $(this).attr('id');
88
+				switch (id) {
89
+					case 'ITP_BTN_MLOANMNG02010_PAY_REQ'				: mobContentObj.list.payment.request();	break;
90
+					case 'ITP_BTN_MLOANMNG02010_PAY_CANCEL'				: mobContentObj.list.payment.cancel();	break;
91
+				}
92
+				return false;
93
+			});
94
+
81 95
 			$(document).on('click', '#ITP_LIST_MLOANMNG02010_LIST_ITEM_ROWS li', function(e) {
82 96
 				var index = $(this).index();
83 97
 				if($(e.target).hasClass('AGR')) {
@@ -116,6 +130,8 @@ let mobPageObj = {
116 130
 		} else if(mode === PAGE_MODE_VIEW) {
117 131
 			$('#ITP_AJAX_MLOANMNG02010_VIEW_CONTAINER').show();
118 132
 			this.moreView(false);
133
+		} else if(mode === PAGE_MODE_PAY) {
134
+			$('#ITP_AJAX_MLOANMNG02010_PAY_CONTAINER').show();
119 135
 		}
120 136
 	},
121 137
 	moreView: function(isScroll) {
@@ -207,12 +223,15 @@ let mobContentObj = {
207 223
 					alert('신규입금 처리를 위한 매장을 선택하세요.');
208 224
 					return;
209 225
 				}
210
-				if(CommonObj.isApp) {
211
-					mobPageObj.switchScreen(PAGE_MODE_PAY);
212
-					this.load();
213
-				} else {
214
-					this.popup();
215
-				}
226
+				// if(CommonObj.isApp) {
227
+				// 	mobPageObj.switchScreen(PAGE_MODE_PAY);
228
+				// 	this.load();
229
+				// } else {
230
+				// 	this.popup();
231
+				// }
232
+				mobPageObj.switchScreen(PAGE_MODE_PAY);
233
+				$('#ITP_FORM_MLOANMNG02010_PAY_STORE_ID').val(storeId);
234
+				this.load();
216 235
 			},
217 236
 			load: function() {
218 237
 				var callbackFn = function(result) {
@@ -236,8 +255,11 @@ let mobContentObj = {
236 255
 						}
237 256
 					}
238 257
 				};
239
-				// 결제타입코드 : 10(선불(충전)), 20(후불(결제)), 30(후불(선결제))
240
-				var param = $('#ITP_FORM_MLOANMNG02010_VIEW').serializeObject();
258
+				var param = {
259
+					'goodsAmt': '0',
260
+					'brandId': $('#ITP_FORM_MLOANMNG02010_LIST_SEARCH_BRAND_ID').val(),
261
+					'storeId': $('#ITP_FORM_MLOANMNG02010_LIST_SEARCH_STORE_ID').val()
262
+				};
241 263
 				fn_ajax_call(EASYPAY_PAYMENT_CREATE, JSON.stringify(param), callbackFn, 'POST');
242 264
 			},
243 265
 			popup: function() {
@@ -258,13 +280,18 @@ let mobContentObj = {
258 280
 			},
259 281
 			request: function() {
260 282
 				var param = $('#ITP_FORM_MLOANMNG02010_PAY').serializeObject();
283
+				var loanDvsn = $('#ITP_FORM_LOANMNG02010_SEARCH_STORE_LOAN_DVSN').val();
284
+				param['brandNm'] = fn_make_user_info.get('brandNm');
285
+				param['payTpCd'] = loanDvsn == 'LD01' ? '10' : '30';
261 286
 				console.log(param);
262
-				location.replace('app:payment:' + JSON.stringify(param));
287
+				$(location).attr('href', MOBILE_CONTEXTPATH + '/app/payment.html?' + $.param(param));
288
+				// itp_fn_call_app.payment(param);
263 289
 			},
264 290
 			payResult: function(result) {
265 291
 				console.log(result);
266 292
 			},
267 293
 			cancel: function() {
294
+				var id = '#ITP_FORM_MLOANMNG02010_PAY';
268 295
 				$(id).find('.fnPoOrdNo').text('');
269 296
 				$(id).find('.fnOrdNm').text('');
270 297
 				$(id).find('.fnGoodsNm').text('');
@@ -275,7 +302,7 @@ let mobContentObj = {
275 302
 				$(id).find('#ITP_FORM_MLOANMNG02010_PAY_MALL_ID').val('');
276 303
 				$(id).find('#ITP_FORM_MLOANMNG02010_PAY_MOBILE_URL').val('');
277 304
 				$(id).find('#ITP_FORM_MLOANMNG02010_PAY_JS_URL').val('');
278
-				mobPageObj.switchScreen(PAGE_MODE_VIEW);
305
+				mobPageObj.switchScreen(PAGE_MODE_LIST);
279 306
 			}
280 307
 		},
281 308
 		payRequest: function() {

+ 332 - 0
src/main/webapp/mobile/js/app/payment.js

@@ -0,0 +1,332 @@
1
+require(['config'], function() {
2
+	require([
3
+		'jquery'
4
+	], function($) {
5
+		popPageObj.init();
6
+	});
7
+});
8
+
9
+let EASYPAY_PAYMENT_CREATE = '/api/easypay/payment/create'; // 이지페이 결제 생성
10
+let EASYPAY_PAYMENT_REQUEST = '/api/easypay/payment/request';
11
+
12
+let KICC_JAVASCRIPT_URL;
13
+let KICC_ACTION_WEB_URL;
14
+let KICC_ACTION_MOBILE_URL; 
15
+let MALL_ID;
16
+let WEB_RETURN_URL;
17
+let MOBILE_RETURN_URL;
18
+
19
+var popPageObj = {
20
+	init: function () {
21
+		this.view();
22
+	},
23
+	parentPopFn: null,
24
+	args: null,
25
+	returnType: null,
26
+	setPay: function() {
27
+
28
+	},
29
+	view: function() {
30
+		var payTpCd = CommonObj.getParameter('payTpCd');
31
+		var brandId = CommonObj.getParameter('brandId');
32
+		var brandNm = CommonObj.getParameter('brandNm');
33
+		var storeId = CommonObj.getParameter('storeId');
34
+		var poOrdNo = CommonObj.getParameter('poOrdNo');
35
+		var ordNm = CommonObj.getParameter('ordNm');
36
+		var goodsNm = CommonObj.getParameter('goodsNm');
37
+		var goodsAmt = CommonObj.getParameter('goodsAmt');
38
+		var mallId = CommonObj.getParameter('mallId');
39
+		var payMethod = CommonObj.getParameter('payMethod');
40
+		var ordTel = CommonObj.getParameter('ordTel');
41
+		var ordEmail = CommonObj.getParameter('ordEmail');
42
+
43
+		var kicc_action_mobile_url = CommonObj.getParameter('kicc_action_mobile_url');
44
+		var kicc_javascript_url = CommonObj.getParameter('kicc_javascript_url');
45
+
46
+		KICC_JAVASCRIPT_URL = kicc_javascript_url;
47
+		KICC_ACTION_MOBILE_URL = kicc_action_mobile_url;
48
+		MALL_ID = mallId;
49
+		WEB_RETURN_URL = window.location.href.replace('main.html', 'easypay/oqpo/oqpo_order_res.jsp');
50
+		MOBILE_RETURN_URL = window.location.href.replace('main.html', 'easypay/oqpo/mobile_order_res_submit.jsp');
51
+
52
+		var frm_pay = document.frm_pay;
53
+
54
+		/*--모바일 결제--*/
55
+		/*--공통--*/
56
+		frm_pay.kiccActionWebUrl.value  	= KICC_ACTION_WEB_URL;
57
+		frm_pay.kiccActionMobileUrl.value  	= KICC_ACTION_MOBILE_URL;
58
+		frm_pay.EP_mall_id.value        = MALL_ID;       						   	//브랜드그룹 ID
59
+		frm_pay.EP_mall_nm.value        = brandNm;		   							//브랜드그룹명
60
+		frm_pay.EP_order_no.value       = poOrdNo;   					   			//브랜드그룹 주문번호
61
+		//결제수단(select)
62
+		frm_pay.EP_currency.value       = "00";                                    	//통화코드 : 00-원
63
+		frm_pay.EP_product_nm.value     = goodsNm;				   		   			//상품명
64
+		frm_pay.EP_product_amt.value    = goodsAmt;									//상품금액
65
+		//브랜드그룹 return_url(윈도우 타입 선택 시, 분기)
66
+		frm_pay.EP_lang_flag.value      = "KOR";                                    //언어: KOR / ENG
67
+		frm_pay.EP_charset.value        = "UTF-8";                                  //브랜드그룹 Charset: EUC-KR(default) / UTF-8
68
+		frm_pay.EP_user_id.value        = "";		                               //브랜드그룹 고객 ID
69
+		frm_pay.EP_memb_user_no.value   = "";			                           //브랜드그룹 고객 일련번호
70
+		frm_pay.EP_user_nm.value        = ordNm;						   	   //브랜드그룹 고객명
71
+		frm_pay.EP_user_mail.value      = ordEmail;                     	   //브랜드그룹 고객 이메일
72
+		frm_pay.EP_user_phone1.value    = ordTel;                       	   //브랜드그룹 고객 번호1
73
+		frm_pay.EP_user_phone2.value    = "";			                           //브랜드그룹 고객 번호2
74
+		frm_pay.EP_user_addr.value      = "";      								   //브랜드그룹 고객 주소
75
+		frm_pay.EP_product_type.value   = "0";                                     //상품정보구분 : 0-실물, 1-서비스
76
+		frm_pay.EP_product_expr.value   = "";             				           //서비스기간 : YYYYMMDD
77
+		frm_pay.EP_return_url.value     = WEB_RETURN_URL;  							   // Return 받을 URL (HTTP부터 입력)
78
+
79
+		/*--신용카드--*/
80
+		frm_pay.EP_usedcard_code.value  = "";                                      //사용가능한 카드 LIST
81
+		frm_pay.EP_quota.value          = "";                                      //할부개월
82
+
83
+		//무이자 여부(Y/N) (select)
84
+		frm_pay.EP_noinst_term.value    = "";		                               //무이자기간
85
+		//카드사포인트 사용여부(select)
86
+		frm_pay.EP_point_card.value     = "";	                                   //포인트카드 LIST
87
+		//조인코드(select)
88
+		//국민 앱카드 사용(select)
89
+
90
+		/*--가상계좌--*/
91
+		frm_pay.EP_vacct_bank.value     = "";                                      //가상계좌 사용가능한 은행 LIST
92
+		frm_pay.EP_vacct_end_date.value = "";		                               //입금 만료 날짜
93
+		frm_pay.EP_vacct_end_time.value = "";        	                           //입금 만료 시간
94
+
95
+		/*--모바일 결제--*/
96
+		/*--공통--*/
97
+		frm_pay.sp_mall_id.value        = MALL_ID;    							   //브랜드그룹 ID
98
+		frm_pay.sp_mall_nm.value        = brandNm;		   							//브랜드그룹명
99
+		frm_pay.sp_order_no.value       = poOrdNo;  						   //브랜드그룹 주문번호
100
+		//결제수단(select)
101
+		frm_pay.sp_currency.value       = "00";                                    //통화코드 : 00-원
102
+		frm_pay.sp_product_nm.value     = goodsNm;               	   	   //상품명
103
+		frm_pay.sp_product_amt.value    = goodsAmt; 							//상품금액
104
+		//브랜드그룹 return_url(윈도우 타입 선택 시, 분기)
105
+		frm_pay.sp_lang_flag.value      = "KOR";                                    //언어: KOR / ENG
106
+		frm_pay.sp_charset.value        = "UTF-8";                                  //브랜드그룹 Charset: EUC-KR(default) / UTF-8
107
+		frm_pay.sp_user_id.value        = "";           	                       //브랜드그룹 고객 ID
108
+		frm_pay.sp_memb_user_no.value   = "";                 		  	           //브랜드그룹 고객 일련번호
109
+		frm_pay.sp_user_nm.value        = ordNm;                            //브랜드그룹 고객명
110
+		frm_pay.sp_user_mail.value      = ordEmail;                         //브랜드그룹 고객 이메일
111
+		frm_pay.sp_user_phone1.value    = ordTel;                           //브랜드그룹 고객 번호1
112
+		frm_pay.sp_user_phone2.value    = "";              				           //브랜드그룹 고객 번호2
113
+		frm_pay.sp_user_addr.value      = "";  									   //브랜드그룹 고객 주소
114
+		frm_pay.sp_product_type.value   = "0";                                     //상품정보구분 : 0-실물, 1-서비스
115
+		frm_pay.sp_product_expr.value   = "";									   //서비스기간 : YYYYMMDD
116
+		frm_pay.sp_app_scheme.value     = "";                                      //브랜드그룹 app scheme : 모바일app으로 서비스시 필수
117
+
118
+		/*--신용카드--*/
119
+		frm_pay.sp_usedcard_code.value  = "";                                      //사용가능한 카드 LIST
120
+		frm_pay.sp_quota.value          = "";                                      //할부개월
121
+																				   //무이자 여부(Y/N) (select)
122
+		frm_pay.sp_noinst_term.value    = "";		                               //무이자기간
123
+		//카드사포인트 사용여부(select)
124
+		frm_pay.sp_point_card.value     = "";         		                       //포인트카드 LIST
125
+		//조인코드(select)
126
+		/*--가상계좌--*/
127
+		frm_pay.sp_vacct_bank.value     = "";                                      //가상계좌 사용가능한 은행 LIST
128
+		frm_pay.sp_vacct_end_date.value = "";               		               //입금 만료 날짜
129
+		frm_pay.sp_vacct_end_time.value = "";                       	           //입금 만료 시간
130
+
131
+		frm_pay.sp_pay_type.value       = payMethod;  								// 결제방법
132
+
133
+		$.getScript(KICC_JAVASCRIPT_URL, function() {
134
+			if (isMobile() || window.innerWidth < 1201 ) {
135
+				f_mobile_cert();
136
+			} else {
137
+				f_cert();
138
+				// f_mobile_cert();
139
+			}
140
+		});
141
+
142
+	},
143
+	fnPaymentReq: function() {
144
+		const formId = '#ITP_FORM_PO_PAYMENT_POPUP';
145
+		itp_fn_form_clear_validate(null, formId);
146
+
147
+		var vali_goodsAmt = itp_fn_form_validate(formId, formId + '_GOODS_AMT', ['empty'], undefined);
148
+		var vali_ordTel = itp_fn_form_validate(formId, formId + '_ORD_TEL', ['empty'], undefined);
149
+		var vali_ordEmail = itp_fn_form_validate(formId, formId + '_ORD_EMAIL', ['email'], undefined);
150
+
151
+		if (vali_goodsAmt && vali_ordTel && vali_ordEmail) {
152
+			// var sttlRjctRsn = $('#ITP_FORM_PO_PAYMENT_POPUP_STTL_RJCT_RSN').val();
153
+
154
+			// popPageObj.parentPopFn(sttlRjctRsn);
155
+			// $('#ITP_BIZPOP_PO_PAYMENT').modal('hide'); // 팝업닫기
156
+
157
+			// $(formId).attr('action', '/oqpo-view/easypay/oqpo/oqpo_order.jsp');
158
+			// $(formId).submit();
159
+
160
+			var frm_pay = document.frm_pay;
161
+			frm_pay.EP_pay_type.value       = $('#ITP_FORM_PO_PAYMENT_POPUP_PAY_METHOD').val();  	// 결제방법
162
+			frm_pay.EP_product_amt.value    = $('#ITP_FORM_PO_PAYMENT_POPUP_GOODS_AMT').val();  	// 결제금액
163
+			frm_pay.EP_user_phone1.value    = $('#ITP_FORM_PO_PAYMENT_POPUP_ORD_TEL').val();  		// 휴대폰
164
+			frm_pay.EP_user_mail.value      = $('#ITP_FORM_PO_PAYMENT_POPUP_ORD_EMAIL').val();  	// 이메일
165
+
166
+			frm_pay.sp_pay_type.value       = $('#ITP_FORM_PO_PAYMENT_POPUP_PAY_METHOD').val();  	// 결제방법
167
+			frm_pay.sp_product_amt.value    = $('#ITP_FORM_PO_PAYMENT_POPUP_GOODS_AMT').val();  	// 결제금액
168
+			frm_pay.sp_user_phone1.value    = $('#ITP_FORM_PO_PAYMENT_POPUP_ORD_TEL').val();  		// 휴대폰
169
+			frm_pay.sp_user_mail.value      = $('#ITP_FORM_PO_PAYMENT_POPUP_ORD_EMAIL').val();  	// 이메일
170
+
171
+			if (isMobile() || window.innerWidth < 1201 ) {
172
+				f_mobile_cert();
173
+			} else {
174
+			    f_cert();
175
+				// f_mobile_cert();
176
+			}
177
+		}
178
+	}
179
+};
180
+
181
+/* 인증창 호출, 인증 요청 */
182
+function f_cert() {
183
+    var frm_pay = document.frm_pay;
184
+
185
+    /*  주문정보 확인 */
186
+    if( !frm_pay.EP_order_no.value ) {
187
+        alert("브랜드그룹주문번호가 존재하지않습니다.");
188
+        frm_pay.EP_order_no.focus();
189
+        return;
190
+    }
191
+
192
+    if( !frm_pay.EP_product_amt.value ) {
193
+        alert("상품금액이 존재하지않습니다.");
194
+        frm_pay.EP_product_amt.focus();
195
+        return;
196
+    }
197
+
198
+    /* UTF-8 사용브랜드그룹의 경우 EP_charset 값 셋팅 필수 */
199
+    if( frm_pay.EP_charset.value == "UTF-8" ) {
200
+        // 한글이 들어가는 값은 모두 encoding 필수.
201
+        frm_pay.EP_mall_nm.value        = encodeURIComponent( frm_pay.EP_mall_nm.value );
202
+        frm_pay.EP_product_nm.value     = encodeURIComponent( frm_pay.EP_product_nm.value );
203
+        frm_pay.EP_user_nm.value        = encodeURIComponent( frm_pay.EP_user_nm.value );
204
+        frm_pay.EP_user_addr.value      = encodeURIComponent( frm_pay.EP_user_addr.value );
205
+    }
206
+
207
+    /* 브랜드그룹에서 원하는 인증창 호출 방법을 선택 */
208
+    if( frm_pay.EP_window_type.value == "iframe" ) {
209
+
210
+    	easypay_webpay(frm_pay,"/oqpo-view/easypay/oqpo/oqpo_iframe_req.jsp","hiddenifr","0","0","iframe",30);
211
+
212
+        if( frm_pay.EP_charset.value == "UTF-8" ) {
213
+            // encoding 된 값은 모두 decoding 필수.
214
+            frm_pay.EP_mall_nm.value        = decodeURIComponent( frm_pay.EP_mall_nm.value );
215
+            frm_pay.EP_product_nm.value     = decodeURIComponent( frm_pay.EP_product_nm.value );
216
+            frm_pay.EP_user_nm.value        = decodeURIComponent( frm_pay.EP_user_nm.value );
217
+            frm_pay.EP_user_addr.value      = decodeURIComponent( frm_pay.EP_user_addr.value );
218
+        }
219
+    } else if( frm_pay.EP_window_type.value == "popup" ) {
220
+
221
+        easypay_webpay(frm_pay,"/oqpo-view/easypay/oqpo/oqpo_popup_req.jsp","hiddenifr","","","popup",30);
222
+
223
+        if( frm_pay.EP_charset.value == "UTF-8" ) {
224
+            // encoding 된 값은 모두 decoding 필수.
225
+            frm_pay.EP_mall_nm.value        = decodeURIComponent( frm_pay.EP_mall_nm.value );
226
+            frm_pay.EP_product_nm.value     = decodeURIComponent( frm_pay.EP_product_nm.value );
227
+            frm_pay.EP_user_nm.value        = decodeURIComponent( frm_pay.EP_user_nm.value );
228
+            frm_pay.EP_user_addr.value      = decodeURIComponent( frm_pay.EP_user_addr.value );
229
+        }
230
+    }
231
+}
232
+
233
+/* 인증창 호출, 인증 요청 */
234
+function f_mobile_cert() {
235
+    var frm_pay = document.frm_pay;
236
+    
237
+    /*  주문정보 확인 */
238
+    if( !frm_pay.sp_order_no.value ) {
239
+        alert("브랜드그룹주문번호가 존재하지않습니다.");
240
+        frm_pay.sp_order_no.focus();
241
+        return;
242
+    }
243
+
244
+    if( !frm_pay.sp_product_amt.value ) {
245
+        alert("상품금액이 존재하지않습니다.");
246
+        frm_pay.sp_product_amt.focus();
247
+        return;
248
+    }
249
+    /* UTF-8 사용브랜드그룹의 경우 EP_charset 값 셋팅 필수 */
250
+    if( frm_pay.sp_charset.value == "UTF-8" ) {
251
+        // 한글이 들어가는 값은 모두 encoding 필수.
252
+        frm_pay.sp_mall_nm.value      = encodeURIComponent( frm_pay.sp_mall_nm.value );
253
+        frm_pay.sp_product_nm.value   = encodeURIComponent( frm_pay.sp_product_nm.value );
254
+        frm_pay.sp_user_nm.value      = encodeURIComponent( frm_pay.sp_user_nm.value );
255
+        frm_pay.sp_user_addr.value    = encodeURIComponent( frm_pay.sp_user_addr.value );
256
+    }
257
+
258
+   	frm_pay.sp_return_url.value = MOBILE_RETURN_URL; //
259
+	console.log( $('#frm_pay').serializeObject());
260
+    easypay_card_webpay(frm_pay,"/oqpo-view/mobile/app/easypay/oqpo/mobile_order_req.jsp","_self","0","0","submit",30);
261
+}
262
+
263
+/* 승인 요청 */
264
+function f_submit() {
265
+
266
+	var reqDataList = [];	
267
+	var ca = $('#sttlMgntUnqNoList').val().split(';');
268
+    for(var i = 0 ; i < ca.length ; i++) {
269
+		reqDataList.push( { sttlMgntUnqNo : ca[i] } );
270
+	}	
271
+		
272
+	let param = $('#frm_pay').serializeObject();
273
+	param.reqDataList = reqDataList;
274
+	
275
+	// console.log("REQ : " + JSON.stringify(param));
276
+		
277
+	fn_ajax_call(EASYPAY_PAYMENT_REQUEST, JSON.stringify(param), function(result) {
278
+		
279
+		// console.log("RES : " + JSON.stringify(result));
280
+		
281
+		if(result.res_cd == '0000') {
282
+			popPageObj.parentPopFn(result);			
283
+			$('#ITP_BIZPOP_PO_PAYMENT').modal('hide'); // 팝업닫기
284
+		} else {
285
+			itp_fn_modal_alert_ajax(result.res_msg);			
286
+		}
287
+		
288
+	}, 'POST');	
289
+}
290
+
291
+/* 모바일 승인 요청 */
292
+function f_moblie_submit() {
293
+	f_submit();
294
+//      var frm_pay = document.frm_pay;
295
+//
296
+//      // 정상("0000") 일 때 승인요청페이지로 이동.
297
+//      if( frm_pay.sp_res_cd.value == "0000" ) {
298
+//
299
+//          if( frm_pay.sp_charset.value == "UTF-8" ) {
300
+//              // 인증요청 시 인코딩 한 값은 승인요청 시 디코딩 처리해야함.
301
+//              frm_pay.sp_mall_nm.value      = decodeURIComponent( frm_pay.sp_mall_nm.value );
302
+//              frm_pay.sp_product_nm.value   = decodeURIComponent( frm_pay.sp_product_nm.value );
303
+//              frm_pay.sp_user_nm.value      = decodeURIComponent( frm_pay.sp_user_nm.value );
304
+//              frm_pay.sp_user_addr.value    = decodeURIComponent( frm_pay.sp_user_addr.value );
305
+//          }
306
+//
307
+//          frm_pay.target = "_self";
308
+//          // frm_pay.action = "${contextPath}/easypay_request.itp";
309
+//          // frm_pay.submit();
310
+//      }
311
+}
312
+
313
+function isMobile() {
314
+    // if we want a more complete list use this: http://detectmobilebrowsers.com/
315
+    // str.test() is more efficent than str.match()
316
+    // remember str.test is case sensitive
317
+    var isMobile = (/iphone|ipod|android|ie|blackberry|fennec/).test(navigator.userAgent.toLowerCase());
318
+    return isMobile;
319
+}
320
+
321
+function itp_fn_BIZPOP_PO_PAYMENT(parentPopFn, args, returnType) {
322
+	$('#ITP_BIZPOP_PO_PAYMENT').one('shown.bs.modal', function(e) {
323
+		itp_fn_fire_window_resize();
324
+	}).one('hidden.bs.modal', function(e) {
325
+		$('#ITP_BIZPOP_PO_PAYMENT').remove();
326
+	}).modal('show');
327
+
328
+	popPageObj.parentPopFn = parentPopFn;
329
+	popPageObj.args = args;
330
+	popPageObj.returnType = returnType;
331
+	popPageObj.init();
332
+}

+ 25 - 18
src/main/webapp/mobile/js/app/popup/biz/ITP_BIZPOP_PO_PAYMENT.js

@@ -87,6 +87,12 @@ var popPageObj = {
87 87
 			$('#ITP_FORM_PO_PAYMENT_POPUP .fnOrdNm').text(result.ordNm); // 구매자명
88 88
 			$('#ITP_FORM_PO_PAYMENT_POPUP .fnGoodsNm').text(result.goodsNm); // 상품명
89 89
 			$('#ITP_FORM_PO_PAYMENT_POPUP_ORD_TEL').val(result.ordTel); // 휴대전화번호
90
+
91
+
92
+			$('#ITP_FORM_PO_PAYMENT_POPUP_GOODS_AMT').val('1000'); // 결제금액
93
+			$('#ITP_FORM_PO_PAYMENT_POPUP_ORD_TEL').val('010-2329-8816'); // 휴대전화번호
94
+
95
+
90 96
 			if(result.ordEmail) {
91 97
 				var email = result.ordEmail.split('@');
92 98
 				if(email.length === 2) {
@@ -309,7 +315,7 @@ function f_mobile_cert() {
309 315
     }
310 316
 
311 317
    	frm_pay.sp_return_url.value = MOBILE_RETURN_URL; //    	
312
-    easypay_card_webpay(frm_pay,"/oqpo-view/easypay/oqpo/mobile_order_req.jsp","_self","0","0","submit",30);    
318
+    easypay_card_webpay(frm_pay,"/oqpo-view/mobile/app/easypay/oqpo/mobile_order_req.jsp","_self","0","0","submit",30);
313 319
 }
314 320
 
315 321
 /* 승인 요청 */
@@ -348,23 +354,24 @@ function f_submit() {
348 354
 
349 355
 /* 모바일 승인 요청 */
350 356
 function f_moblie_submit() {
351
-     var frm_pay = document.frm_pay;
352
-     
353
-     // 정상("0000") 일 때 승인요청페이지로 이동.
354
-     if( frm_pay.sp_res_cd.value == "0000" ) {
355
-    	 
356
-         if( frm_pay.sp_charset.value == "UTF-8" ) {
357
-             // 인증요청 시 인코딩 한 값은 승인요청 시 디코딩 처리해야함.
358
-             frm_pay.sp_mall_nm.value      = decodeURIComponent( frm_pay.sp_mall_nm.value );
359
-             frm_pay.sp_product_nm.value   = decodeURIComponent( frm_pay.sp_product_nm.value );
360
-             frm_pay.sp_user_nm.value      = decodeURIComponent( frm_pay.sp_user_nm.value );
361
-             frm_pay.sp_user_addr.value    = decodeURIComponent( frm_pay.sp_user_addr.value );
362
-         }
363
-         
364
-         frm_pay.target = "_self";
365
-         // frm_pay.action = "${contextPath}/easypay_request.itp";
366
-         // frm_pay.submit();
367
-     }
357
+	f_submit();
358
+//      var frm_pay = document.frm_pay;
359
+//
360
+//      // 정상("0000") 일 때 승인요청페이지로 이동.
361
+//      if( frm_pay.sp_res_cd.value == "0000" ) {
362
+//
363
+//          if( frm_pay.sp_charset.value == "UTF-8" ) {
364
+//              // 인증요청 시 인코딩 한 값은 승인요청 시 디코딩 처리해야함.
365
+//              frm_pay.sp_mall_nm.value      = decodeURIComponent( frm_pay.sp_mall_nm.value );
366
+//              frm_pay.sp_product_nm.value   = decodeURIComponent( frm_pay.sp_product_nm.value );
367
+//              frm_pay.sp_user_nm.value      = decodeURIComponent( frm_pay.sp_user_nm.value );
368
+//              frm_pay.sp_user_addr.value    = decodeURIComponent( frm_pay.sp_user_addr.value );
369
+//          }
370
+//
371
+//          frm_pay.target = "_self";
372
+//          // frm_pay.action = "${contextPath}/easypay_request.itp";
373
+//          // frm_pay.submit();
374
+//      }
368 375
 }
369 376
 
370 377
 function isMobile() {

+ 30 - 2
src/main/webapp/mobile/js/config.js

@@ -6,6 +6,7 @@ const CMD_PAGE_MOVE_PARAM = 'PAGE_MOVE_PARAM';
6 6
 
7 7
 requirejs.config({
8 8
 	baseUrl: ITP_CONTEXTPATH,
9
+	waitSeconds: 0,
9 10
 	paths: {
10 11
 		'jquery': 'js/jquery.min',
11 12
 		'jquery-ui': 'js/jquery-ui.min',
@@ -66,7 +67,7 @@ require([
66 67
 		fnLogout();
67 68
 	});
68 69
 
69
-	if(VIEW_PAGE !== 'LOGIN') {
70
+	if(VIEW_PAGE !== 'LOGIN' && VIEW_PAGE !== 'PAY') {
70 71
 		var data = JSON.parse(sessionStorage.getItem('itp_login_info'));
71 72
 		CONN_KEY = data.connKey; //로그인 했을때 넣었던 키를 가져옴
72 73
 
@@ -691,6 +692,19 @@ let itp_fn_payment = {
691 692
 	}
692 693
 };
693 694
 
695
+let itp_fn_call_app = {
696
+	barcode: function() {
697
+
698
+	},
699
+	payment: function(param) {
700
+		console.log('app:payment:' + $.param(param));
701
+		location.replace('app:payment:' + $.param(param));
702
+	},
703
+	backPress: function() {
704
+		location.replace('app:pageBack');
705
+	}
706
+};
707
+
694 708
 let CommonObj = {
695 709
 	listSize: 10,
696 710
 	jsonParam: function(formId) {
@@ -761,6 +775,20 @@ let CommonObj = {
761 775
 		});
762 776
 
763 777
 	},
778
+	getParameter: function(name) {
779
+		var rtnval = '';
780
+		var nowAddress = unescape(location.href);
781
+		var parameters = (nowAddress.slice(nowAddress.indexOf('?') + 1,
782
+			nowAddress.length)).split('&');
783
+		for (var i = 0; i < parameters.length; i++) {
784
+			var varName = parameters[i].split('=')[0];
785
+			if (varName.toUpperCase() === name.toUpperCase()) {
786
+				rtnval = parameters[i].split('=')[1];
787
+				break;
788
+			}
789
+		}
790
+		return rtnval;
791
+	},
764 792
 	comma: {
765 793
 		set: function(str) {
766 794
 			str = String(str);
@@ -782,7 +810,7 @@ let CommonObj = {
782 810
 	onlyNumber: function(str) {
783 811
 		return (str) ? str.replace(/[^0-9]/g, '') : str;
784 812
 	},
785
-	isApp: (/app_android|app_ios/).test(navigator.userAgent.toLowerCase())
813
+	isApp: (/oqpo_android|oqpo_ios/).test(navigator.userAgent.toLowerCase())
786 814
 };
787 815
 
788 816
 function itp_fn_date_format(date, type) {