Browse Source

네이버페이 임시 커밋

card007 5 years ago
parent
commit
cff91aa2c7

+ 3 - 2
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -25,6 +25,7 @@ import com.style24.core.support.session.TscSession;
 import com.style24.front.biz.dao.TsfOrderDao;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.KakaoPay;
+import com.style24.persistence.domain.NaverPay;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Payment;
 
@@ -269,7 +270,6 @@ public class TsfOrderService {
 					throw new IllegalArgumentException("결제 정보 저장 실패. 새로고침 후 다시 시작해주세요.");
 				}
 			}
-			}
 		} catch(Exception e) {
 			e.printStackTrace();
 			throw new IllegalArgumentException(e.getMessage());
@@ -352,7 +352,8 @@ public class TsfOrderService {
 			KakaoPay kakaoPay = coreKakaoPayService.kakaoPaymentReady(order);
 			payment = coreKakaoPayService.setKakaoOrderData(kakaoPay, order);
 		} else if(TscConstants.PgGb.NAVER.value().equals(order.getPgGb())) {	// 네이버페이
-			payment = coreNaverPayService.setNaverOrderData(order);
+			NaverPay naverPay = coreNaverPayService.naverPaymentReady(order);
+			payment = coreNaverPayService.setNaverOrderData(naverPay);
 		} else if(TscConstants.PgGb.KCP.value().equals(order.getPgGb()) || TscConstants.PgGb.PAYCO.value().equals(order.getPgGb())){	// KCP, PAYCO
 			payment = coreKcpService.setKcpOrderData(order);
 		} else {

+ 8 - 32
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -883,16 +883,10 @@ public class TsfOrderController extends TsfBaseController {
 	 */
 	@RequestMapping(value = "/kakao/payment/order")
 	@ResponseBody
-	public GagaMap kakaoPaymentOrder(@RequestBody Order order) {
+	public GagaMap kakaoPaymentOrder(@RequestBody Payment payment) {
 		GagaMap result = new GagaMap();
 
-		if (TsfSession.getInfo().getCustNo() == null) {
-			order.setCustNo(0);
-		} else {
-			order.setCustNo(TsfSession.getInfo().getCustNo());
-		}
-
-		result.set("kakaoPay", kakaoPayService.getKakaoPaymentOrder(order));
+		result.set("kakaoPay", kakaoPayService.getKakaoPaymentOrder(payment));
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
 
 		return result;
@@ -972,16 +966,10 @@ public class TsfOrderController extends TsfBaseController {
 	 */
 	@RequestMapping(value = "/naver/payment/approve")
 	@ResponseBody
-	public GagaMap approveNaverPayment(@RequestBody Order order) {
+	public GagaMap approveNaverPayment(@RequestBody Payment payment) {
 		GagaMap result = new GagaMap();
 
-		if (TsfSession.getInfo().getCustNo() == null) {
-			order.setCustNo(0);
-		} else {
-			order.setCustNo(TsfSession.getInfo().getCustNo());
-		}
-
-		result.set("payment", naverPayService.approveNaverPayment(order));
+		result.set("payment", naverPayService.approveNaverPayment(payment));
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
 
 		return result;
@@ -997,16 +985,10 @@ public class TsfOrderController extends TsfBaseController {
 	 */
 	@RequestMapping(value = "/naver/payment/order")
 	@ResponseBody
-	public GagaMap naverPaymentOrder(@RequestBody Order order) {
+	public GagaMap naverPaymentOrder(@RequestBody Payment payment) {
 		GagaMap result = new GagaMap();
 
-		if (TsfSession.getInfo().getCustNo() == null) {
-			order.setCustNo(0);
-		} else {
-			order.setCustNo(TsfSession.getInfo().getCustNo());
-		}
-
-		result.set("naverPay", naverPayService.getNaverPaymentOrder(order));
+		result.set("naverPay", naverPayService.getNaverPaymentOrder(payment));
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
 
 		return result;
@@ -1022,16 +1004,10 @@ public class TsfOrderController extends TsfBaseController {
 	 */
 	@RequestMapping(value = "/naver/payment/cancel")
 	@ResponseBody
-	public GagaMap cancelNaverPayment(@RequestBody Order order) {
+	public GagaMap cancelNaverPayment(@RequestBody Payment payment) {
 		GagaMap result = new GagaMap();
 
-		if (TsfSession.getInfo().getCustNo() == null) {
-			order.setCustNo(0);
-		} else {
-			order.setCustNo(TsfSession.getInfo().getCustNo());
-		}
-
-		result.set("naverPay", naverPayService.cancelNaverPayment(order));
+		result.set("naverPay", naverPayService.cancelNaverPayment(payment));
 		result.set("status", GagaResponseStatus.SUCCESS.getCode());
 
 		return result;

+ 86 - 52
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -65,25 +65,51 @@
 
 
 <!-- card007 -->
-	<script type="text/javascript">
+	<script th:inline="javascript">
 		$(document).on("click", "#kakaoBtn", function() {
-			$.ajax( {
+			$.ajax({
 				type: "POST",
-				url : '/order/create/order',
+				url : '/order/create/preOrder',
 				dataType : 'html',
-				data : {cartSq : 8},
+				data : {
+					pgGb			: "KAKAO"
+					, custNo		: [[${sessionInfo.custNo}]]
+					, ordNo			: 1000
+					, goodsNm		: "상품 테스트"
+					, payAmt		: 30000
+					, ordGoodsQty	: [[${goodsTotCnt}]]
+				},
+				error : function(e) {
+					console.log(e.responseText);
+				},
 				success : function(result) {
 					$("#order_info").html(result);
 					fnKakaoPaymentReady();
 				}
 			});
+			//let url = '/order/create/preOrder';
+			//let data = {};
+			//data.pgGb = 'KAKAO';
+			//data.ordNo = 1000;
+			//data.custNo = [[${sessionInfo.custNo}]];
+			//data.goodsNm = '상품 테스트';
+			//data.ordGoodsQty = [[${goodsTotCnt}]];
+			//data.payAmt = 30000;
+			//
+			//let jsonData = JSON.stringify(data);
+			//
+			//gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+			//	$("#order_info").html(result);
+			//	console.log(result);
+			//	fnKakaoPaymentReady();
+			//});
 		});
 
 		// 카카오페이 결제준비 처리
 		var fnKakaoPaymentReady = function() {
 			let nextRedirectUrl = $('#order_info input[name=nextRedirectPcUrl]').val();
 			let option = 'width=420, height=520';
-			
+
 			window.open(nextRedirectUrl, 'kakaoPaymentPopup', option);
 		}
 
@@ -91,10 +117,15 @@
 		var fnKakaoPaymentRequest = function(pgToken) {
 			$('#order_info input[name=pgToken]').val(pgToken);
 
+			// TODO
+			// formSubmit
+
+			// 테스트용 호출
 			let url = '/order/kakao/payment/approve';
 			let data = {};
 			data.pgTid = $('#order_info input[name=pgTid]').val();
-			data.ordNo = $('#order_info input[name=ordr_idxx]').val();
+			data.partnerOrderId = $('#order_info input[name=partnerOrderId]').val();
+			data.partnerUserId = $('#order_info input[name=partnerUserId]').val();
 			data.pgToken = $('#order_info input[name=pgToken]').val();
 
 			let jsonData = JSON.stringify(data);
@@ -109,7 +140,7 @@
 			return true;
 		}
 
-		// 카카오페이 결제 정보 조회
+		// 카카오페이 결제 정보 조회 (테스트용 호출)
 		var fnKakaoPaymentOrder = function() {
 			let url = '/order/kakao/payment/order';
 			let data = {};
@@ -127,13 +158,12 @@
 			return true;
 		}
 
-		// 카카오페이 결제 취소
+		// 카카오페이 결제 취소 (테스트용 호출)
 		var fnCancelKakaoPayment = function() {
 			let url = '/order/kakao/payment/cancel';
 			let data = {};
 			data.pgTid = $('#order_info input[name=pgTid]').val();
-			data.cnclRtnAmt = 1000;
-			//data.allCanYn = 'Y';
+			data.payAmt = 1000;
 
 			let jsonData = JSON.stringify(data);
 
@@ -148,58 +178,64 @@
 	</script>
 
 	<!-- =========== 네이버페이 ============= -->
-	<script src="https://nsp.pay.naver.com/sdk/js/naverpay.min.js"></script>
 	<script th:inline="javascript">
-		//let custNo = [[${sessionInfo.custNo}]];
-		//let naverPayClientId = [[${@environment.getProperty('naverPay.clientId')}]];
-		//let redirectUrl = '/order/naver/payment/request';
-		//const protocol = 'http:';
-		//
-		//var oPay = Naver.Pay.create({
-		//	"mode" : "development",				// development or production
-		//	"clientId": naverPayClientId	// clientId
-		//});
-		
 		$(document).on("click", "#naverBtn", function() {
-			$.ajax( {
+			$.ajax({
 				type: "POST",
-				url : '/order/create/order',
+				url : '/order/create/preOrder',
 				dataType : 'html',
-				data : {cartSq : 8},
+				data : {
+					pgGb			: "NAVER"
+					, custNo		: [[${sessionInfo.custNo}]]
+					, ordNo			: 1000
+					, goodsNm		: "상품 테스트"
+					, payAmt		: 10
+					, ordGoodsQty	: [[${goodsTotCnt}]]
+				},
+				error : function(e) {
+					console.log(e.responseText);
+				},
 				success : function(result) {
 					$("#order_info").html(result);
 					fnNaverPaymentReady();
 				}
 			});
+			//let url = '/order/create/preOrder';
+			//let data = {};
+			//data.pgGb = 'NAVER';
+			//data.ordNo = 1000;
+			//data.custNo = [[${sessionInfo.custNo}]];
+			//data.goodsNm = "상품 테스트";
+			//data.ordGoodsQty = [[${goodsTotCnt}]];
+			//data.payAmt = 30000;
+			//
+			//let jsonData = JSON.stringify(data);
+			//
+			//gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+			//	$("#order_info").html(result);
+			//	fnNaverPaymentReady();
+			//});
 		});
 		
 		// 네이버페이 결제준비 처리
 		var fnNaverPaymentReady = function() {
-			const protocol = 'http:';
-			let url = '/order/naver/payment/ready';
-			let redirectUrl = '/order/naver/payment/request';
-			let data = {};
-			data.ordNo = $('#order_info input[name=ordr_idxx]').val();
-			data.goodsNm = $('#order_info input[name=good_name]').val();
-			data.ordQty = $('#ordQty').text();
-			data.realOrdAmt = $('#order_info input[name=good_mny]').val();
-			data.returnUrl = protocol + _frontUrl + redirectUrl;
-			
-			let jsonData = JSON.stringify(data);
+			let naverPayUrl = 'https://' + [[${@environment.getProperty('naverPay.payUrl.web')}]];
+			let reserveId = $('#order_info input[name=reserveId]').val();
+			let url = naverPayUrl + '/payments/' + reserveId;
+			console.log(url);
+			let option = 'width=750, height=' + $(window).height();
 			
-			gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-				let reserveId = result.naverPay.body.reserveId;
-				let url = "https://test-pay.naver.com/payments/" + reserveId;
-				let option = 'width=750, height=' + $(window).height();
-
-				window.open(url, 'naverPaymentPopup', option);
-			});
+			window.open(url, 'naverPaymentPopup', option);
 		}
 
 		// 네이버페이 결제 승인 요청
 		var fnNaverPaymentRequest = function(paymentId) {
-			$('#order_info').append('<input type=hidden name="pgTid" value="' + paymentId + '" />');
-
+			$('#order_info input[name=pgTid]').val(paymentId);
+			
+			// TODO
+			// formSubmit
+			
+			// 테스트용 호출
 			let url = '/order/naver/payment/approve';
 			let data = {};
 			data.pgTid = $('#order_info input[name=pgTid]').val();
@@ -216,7 +252,7 @@
 			return true;
 		}
 		
-		// 네이버페이 결제 정보 조회
+		// 네이버페이 결제 정보 조회 (테스트용 호출)
 		var fnNaverPaymentOrder = function() {
 			let url = '/order/naver/payment/order';
 			let data = {};
@@ -234,23 +270,21 @@
 			return true;
 		}
 
-		// 네이버페이 결제 취소
+		// 네이버페이 결제 취소 (테스트용 호출)
 		var fnCancelNaverPayment = function() {
 			let url = '/order/naver/payment/cancel';
 			let data = {};
 			data.pgTid = $('#order_info input[name=pgTid]').val();
 			data.cancelRequester = '1';
-			data.cancelReason = '고객변심';
-			data.cnclRtnAmt = 1000;
-			//data.allCanYn = 'Y';
-			
+			data.chgReasonNm = '고객변심';
+			data.payAmt = 5;
+
 			let jsonData = JSON.stringify(data);
-			
+
 			gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 				console.log('====== naverPaymentCancel ======');
 				console.log(result.kakaoPay);
 				console.log(' ');
-				
 			});
 		}
 	</script>

+ 3 - 10
src/main/webapp/WEB-INF/views/web/pg/kcpOrderWeb.html

@@ -68,7 +68,7 @@
 	<input type="hidden" name="pgTid" th:value="${payment.pgTid}"/>
 	<input type="hidden" name="partnerOrderId" th:value="${payment.partnerOrderId}"/>
 	<input type="hidden" name="partnerUserId" th:value="${payment.partnerUserId}"/>
-	<input type="hidden" name="pgToken" th:value="${payment.pgToken}"/>
+	<input type="hidden" name="pgToken" value=""/>
 	<input type="hidden" name="nextRedirectAppUrl" th:value="${payment.nextRedirectAppUrl}"/>
 	<input type="hidden" name="nextRedirectMobileUrl" th:value="${payment.nextRedirectMobileUrl}"/>
 	<input type="hidden" name="nextRedirectPcUrl" th:value="${payment.nextRedirectPcUrl}"/>
@@ -76,14 +76,7 @@
 	<input type="hidden" name="iosAppScheme" th:value="${payment.iosAppScheme}"/>
 
 	<!-- 네이버페이 관련 정보 -->
-	<input type="hidden" name="modelVersion" value="2"/>
-	<input type="hidden" name="merchantUserKey" th:value="${payment.custNo}"/>
-	<input type="hidden" name="merchantPayKey" th:value="${payment.ordNo}"/>
-	<input type="hidden" name="productName" th:value="${payment.productName}"/>
-	<input type="hidden" name="productCount" th:value="${payment.productCount}"/>
-	<input type="hidden" name="totalPayAmount" th:value="${payment.payAmt}"/>
-	<input type="hidden" name="taxScopeAmount" th:value="${payment.payAmt}"/>
-	<input type="hidden" name="taxExScopeAmount" value=0/>
-	<input type="hidden" name="returnUrl" th:value="${payment.returnUrl}"/>
+	<input type="hidden" name="reserveId" th:value="${payment.reserveId}"/>
+	<input type="hidden" name="paymentId" value=""/>
 
 </html>