Просмотр исходного кода

결제정보 미생성 방어로직 추가

jsh77b 4 лет назад
Родитель
Сommit
6be4aa75eb

+ 8 - 15
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -379,7 +379,7 @@ public class TsfOrderService {
 				errMsg.append("@errMsg=").append("결제수단을 선택해주세요.");
 				errMsg.append("@ordNo=").append(ordNo);
 				errMsg.append("@pgGb=").append(pgGb);
-				errMsg.append("@stopNo=").append(1);
+				errMsg.append("@stepNo=").append(1);
 				
 				throw new IllegalArgumentException(errMsg.toString());
 			}
@@ -420,7 +420,7 @@ public class TsfOrderService {
 				errMsg.append("@errMsg=").append("결제 수단이 잘못 입력되었습니다. 새로고침 후 다시 시도해주세요.");
 				errMsg.append("@ordNo=").append(ordNo);
 				errMsg.append("@pgGb=").append(pgGb);
-				errMsg.append("@stopNo=").append(2);
+				errMsg.append("@stepNo=").append(2);
 				
 				throw new IllegalArgumentException(errMsg.toString());
 			}
@@ -462,6 +462,8 @@ public class TsfOrderService {
 			// 결제완료 업데이트
 			int resultCnt = coreOrderDao.updatePaymentOrderComplete(result);
 			
+			resultCnt = 0;
+			
 			// 결제실패일때 실행
 			if (resultCnt < 1) {
 				if (TscConstants.PgGb.KCP.value().equals(param.getPgGb()) || TscConstants.PgGb.PAYCO.value().equals(param.getPgGb())) {
@@ -470,6 +472,7 @@ public class TsfOrderService {
 						result.setPayStat(TscConstants.PaymentStat.PAY_BEFORE_CANCEL.value());
 						coreOrderDao.insertPayment(result);
 					} else {
+						result.setModType("STSC");
 						coreKcpService.kcpCancel(result);
 					}
 				} else if (TscConstants.PgGb.KAKAO.value().equals(param.getPgGb())) {
@@ -484,10 +487,9 @@ public class TsfOrderService {
 				errMsg.append("@errMsg=").append("결제 정보 저장 실패. 새로고침 후 다시 시작해주세요.");
 				errMsg.append("@ordNo=").append(ordNo);
 				errMsg.append("@pgGb=").append(pgGb);
-				errMsg.append("@stopNo=").append(3);
+				errMsg.append("@stepNo=").append(3);
 				
 				throw new IllegalArgumentException(errMsg.toString());
-				
 			}
 			// 결제성공일때 실행
 			else {
@@ -496,14 +498,7 @@ public class TsfOrderService {
 			}
 		} catch(Exception e) {
 			e.printStackTrace();
-			
-			// 2021.10.26 결제실패내용등록 
-			errMsg.append("@errMsg=").append(e.getMessage());
-			errMsg.append("@ordNo=").append(ordNo);
-			errMsg.append("@pgGb=").append(pgGb);
-			errMsg.append("@stopNo=").append(4);
-			
-			throw new IllegalArgumentException(errMsg.toString());
+			throw new IllegalArgumentException(e.getMessage());
 		}
 
 		return result;
@@ -2577,9 +2572,7 @@ public class TsfOrderService {
 	}
 	
 	// 2021.10.25 결제실패 등록
-	// @Transactional("shopTxnManager", Propagtion.REQUIRES_NEW)
-	// @Transactional(propagation=Propagation.REQUIRES_NEW)
-	@Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW)
+	@Transactional("shopTxnManager")
 	public void createPaymentFail(Order order) {
 		Order po = new Order();
 		po.setOrdNo(order.getOrdNo());

+ 25 - 14
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -921,9 +921,6 @@ public class TsfOrderController extends TsfBaseController {
 	@RequestMapping(value = "/pay/result/response")
 	public ModelAndView payResultResponse(Payment param, HttpServletRequest request, HttpServletResponse response) {
 		
-		// 임시소스 절대 올라가면 안됨
-		param.setPgGb("");
-		
 		// 2021.06.02 태팔요청
 		// 2021.09.01 card007 카카오페이 pgToken 없으면 결제실패 페이지 리다이렉트 처리
 		if((StringUtils.isBlank(param.getPgTid()) && StringUtils.isBlank(request.getParameter("tran_cd")))
@@ -954,19 +951,33 @@ public class TsfOrderController extends TsfBaseController {
 		try {
 			param = orderService.orderPgPayResult(param, request, response);
 		} catch (Exception e) {
-			
-			log.info("message ::: {}", e.getMessage());
-			
 			// 2021.10.25 결제실패 등록
 			Order po = new Order();
-			po.setOrdNo(0);
-			po.setStepNo(1);
-			po.setPgGb("");
-			po.setErrMsg("카카오페이 pgToken 없음");
-			po.setRegNo(param.getCustNo());
-			orderService.createPaymentFail(po);
-						
-			e.printStackTrace();
+			String [] msgArr0 = e.getMessage().split("@");
+			
+			if (msgArr0.length > 0) {
+				for (int i=0 ; i<msgArr0.length ; i++) {
+					String [] msgArr1 = msgArr0[i].split("=");
+					
+					if (msgArr1.length > 1) {
+						if ("ordNo".equals(msgArr1[0])) {
+							po.setOrdNo(Integer.valueOf(msgArr1[1]));
+						}
+						else if ("pgGb".equals(msgArr1[0])) {
+							po.setPgGb(msgArr1[1]);
+						}
+						else if ("errMsg".equals(msgArr1[0])) {
+							po.setErrMsg(msgArr1[1]);
+						}
+						else if ("stepNo".equals(msgArr1[0])) {
+							po.setStepNo(Integer.valueOf(msgArr1[1]));
+						}
+					}
+				}
+				
+				po.setRegNo(param.getCustNo());
+				orderService.createPaymentFail(po);
+			}
 			
 			throw new IllegalArgumentException(e.getMessage());
 		}