Explorar o código

네이버페이 주문형 검수 대응 임시 커밋

card007 %!s(int64=4) %!d(string=hai) anos
pai
achega
f441f2aaf3

+ 65 - 34
src/main/java/com/style24/core/biz/service/TscNaverPayService.java

@@ -440,8 +440,8 @@ public class TscNaverPayService {
 
 		// 로컬의 경우 별도 기간을 설정해서 사용
 		if("locd".equals(env.getProperty("spring.profiles.active"))) {
-			stdt				= "20211012000000";			// 조회기간 시작
-			eddt				= "20211012235959";			// 조회기간 끝
+			stdt				= "20211014000000";			// 조회기간 시작
+			eddt				= "20211014235959";			// 조회기간 끝
 
 			log.info("stdt : eddt ---> " + stdt + " : " + eddt);
 		}
@@ -1331,6 +1331,19 @@ public class TscNaverPayService {
 			change.setWdTargetYn("N");
 			log.info("CHECK CHG_MEMO :::: {}", change.getChgMemo());
 
+			// 보류 상태
+			String holdbackStatus = "";
+			if (orderInfo.getExchangeInfo().getHoldbackStatus() != null) {
+				holdbackStatus = orderInfo.getExchangeInfo().getHoldbackStatus().getValue();
+			}
+
+			log.info("holdbackStatus >>> {}", holdbackStatus);
+			if ("HOLDBACK".equals(holdbackStatus)) {
+				change.setNpayChangeHoldYn("Y");
+			} else {
+				change.setNpayChangeHoldYn("N");
+			}
+
 			GagaMap result = orderChangeService.exchReq(change);
 
 			// 추가배송비 결제 이력 있으면 TB_PAYMENT 넣고 deliveryFee에 PAY_SQ UPDATE
@@ -1361,11 +1374,13 @@ public class TscNaverPayService {
 			}
 
 			// 교환 보류 처리
-			order.setHoldCode(TscConstants.nPayExchangeHoldCode.ETC.value());
-			order.setHoldReason("교환 옵션 변경 대기중");
-			order.setRegNo(userNo);
-			order.setUpdNo(userNo);
-			this.nPayExchangeHold(order);
+			if (!"HOLDBACK".equals(holdbackStatus)) {
+				order.setHoldCode(TscConstants.nPayExchangeHoldCode.ETC.value());
+				order.setHoldReason("교환 옵션 변경 대기중");
+				order.setRegNo(userNo);
+				order.setUpdNo(userNo);
+				this.nPayExchangeHold(order);
+			}
 
 			log.info("NAPAY_ORD_NO 교환 접수 성공 :::: {}", order.getNpayOrdDtlNo());
 		}
@@ -1449,6 +1464,7 @@ public class TscNaverPayService {
 					}
 				}
 
+				change.setHypenChgerPhone();
 				change.setOrdNo(order.getOrdNo());
 				change.setCustNo(custNo);
 				change.setOrdNm(ordNm);
@@ -1525,6 +1541,19 @@ public class TscNaverPayService {
 					change.setChgReason(TscConstants.OrderReturnReason.NOT_DELV_ALL.value());
 				}
 
+				// 보류 상태
+				String holdbackStatus = "";
+				if (orderInfo.getReturnInfo().getHoldbackStatus() != null) {
+					holdbackStatus = orderInfo.getReturnInfo().getHoldbackStatus().getValue();
+				}
+
+				log.info("holdbackStatus >>> {}", holdbackStatus);
+				if ("HOLDBACK".equals(holdbackStatus)) {
+					change.setNpayChangeHoldYn("Y");
+				} else {
+					change.setNpayChangeHoldYn("N");
+				}
+
 				GagaMap map = returnReq(change);
 			}
 		} catch(Exception e) {
@@ -1554,34 +1583,35 @@ public class TscNaverPayService {
 		GagaMap result = orderRefundService.cnclRtnRefundAmt(returnReqList);
 
 		// 4. 주문변경 기본정보 설정
-		result.set("ordNo", orderChange.getOrdNo());					// 주문번호
-		result.setInt("custNo", orderChange.getCustNo());				// 고객번호
-		result.set("regNo", orderChange.getRegNo());
-		result.set("updNo", orderChange.getUpdNo());
-		result.set("pgGb", orderChange.getPgGb());
-		// result.set("ordChgSq", orderChange.getOrdChgSq());			// 주문변경번호
-		result.set("chgReason", orderChange.getChgReason());			// 변경사유
-		result.set("chgMemo", orderChange.getChgMemo());				// 변경메모
-
-		result.set("accountNo", orderChange.getAccountNo());			// 환불계좌번호
-		result.set("accountNm", orderChange.getAccountNm());			// 환불계좌예금주명
-		result.set("bankCd", orderChange.getBankCd());					// 환불계좌은행코드
-
-		result.setString("allLastCanYn", allLastCanYn);					// 전체 마지막 취소 여부
-		result.set("isCustomer", orderChange.getIsCustomer());			// 변경사유 (고객, 회사)
-		result.set("wdTargetYn", orderChange.getWdTargetYn());			// 회수지시 요청 여부
-		result.set("wdGb", orderChange.getWdGb());						// 회수방법
-		result.set("wdInvoiceNo", orderChange.getWdInvoiceNo());		// 회수송장번호
+		result.set("ordNo"				, orderChange.getOrdNo());					// 주문번호
+		result.set("custNo"				, orderChange.getCustNo());					// 고객번호
+		result.set("regNo"				, orderChange.getRegNo());
+		result.set("updNo"				, orderChange.getUpdNo());
+		result.set("pgGb"				, orderChange.getPgGb());
+		// result.set("ordChgSq"			, orderChange.getOrdChgSq());			// 주문변경번호
+		result.set("chgReason"			, orderChange.getChgReason());			// 변경사유
+		result.set("chgMemo"			, orderChange.getChgMemo());			// 변경메모
+
+		result.set("accountNo"			, orderChange.getAccountNo());			// 환불계좌번호
+		result.set("accountNm"			, orderChange.getAccountNm());			// 환불계좌예금주명
+		result.set("bankCd"				, orderChange.getBankCd());				// 환불계좌은행코드
+
+		result.set("allLastCanYn"		, allLastCanYn);						// 전체 마지막 취소 여부
+		result.set("isCustomer"			, orderChange.getIsCustomer());			// 변경사유 (고객, 회사)
+		result.set("wdTargetYn"			, orderChange.getWdTargetYn());			// 회수지시 요청 여부
+		result.set("wdGb"				, orderChange.getWdGb());				// 회수방법
+		result.set("wdInvoiceNo"		, orderChange.getWdInvoiceNo());		// 회수송장번호
+		result.set("npayChangeHoldYn"	, orderChange.getNpayChangeHoldYn());	// 네이버페이 주문형 반품/교환 보류 여부 설정
 
 		// 5. 주문변경 회수지정보 추가
-		result.set("chgerNm", orderChange.getChgerNm());				// 변경자명
-		result.set("chgerEmail", orderChange.getChgerEmail());			// 변경자이메일주소
-		result.set("chgerZipcode", orderChange.getChgerZipcode());		// 회수지우편번호
-		result.set("chgerBaseAddr", orderChange.getChgerBaseAddr());	// 회수지기본주소
-		result.set("chgerDtlAddr", orderChange.getChgerDtlAddr());		// 회수지상세주소
-		result.set("chgerPhnno", orderChange.getChgerPhnno());			// 변경자핸드폰번호
-		result.set("chgerTelno", orderChange.getChgerTelno());			// 변경자전화번호
-		result.set("chgerRtnMemo", orderChange.getChgerRtnMemo());		// 반품메모
+		result.set("chgerNm"			, orderChange.getChgerNm());			// 변경자명
+		result.set("chgerEmail"			, orderChange.getChgerEmail());			// 변경자이메일주소
+		result.set("chgerZipcode"		, orderChange.getChgerZipcode());		// 회수지우편번호
+		result.set("chgerBaseAddr"		, orderChange.getChgerBaseAddr());		// 회수지기본주소
+		result.set("chgerDtlAddr"		, orderChange.getChgerDtlAddr());		// 회수지상세주소
+		result.set("chgerPhnno"			, orderChange.getChgerPhnno());			// 변경자핸드폰번호
+		result.set("chgerTelno"			, orderChange.getChgerTelno());			// 변경자전화번호
+		result.set("chgerRtnMemo"		, orderChange.getChgerRtnMemo());		// 반품메모
 
 		// 6. 주문변경 DB 등록 (TB_ORDER_CHANGE, TB_ORDER_CHANGE_DETAIL, TB_REFUND)
 		GagaMap map = orderChangeService.returnRequest(result);
@@ -2058,7 +2088,7 @@ public class TscNaverPayService {
 					// if ("HOLDBACK".equals(returnHoldStatus.toString()) && !passRfdDelPayType.equals(returnPayType)) {
 				
 				// 2021.10.08 card007 보류중이면 보류해제 처리로 변경
-				if ("HOLDBACK".equals(returnHoldStatus.toString())) {
+				if (returnHoldStatus.toString() != null && "HOLDBACK".equals(returnHoldStatus.toString())) {
 					param.setRegNo(userNo);
 					this.nPayReleaseReturnHold(param);
 				}
@@ -2244,6 +2274,7 @@ public class TscNaverPayService {
 				param.setMallCd(env.getProperty("naverPay.shop.id"));
 
 				generateSignature("PlaceProductOrder", param.getSecretKey());
+				log.info("PlaceProductOrder(배송준비중 주문 정보 조회) :: timeStamp === " + timeStamp);
 
 				byte[] encryptKey = SimpleCryptLib.generateKey(timeStamp, param.getSecretKey());
 

+ 11 - 4
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -815,7 +815,7 @@ public class TscOrderChangeService {
 
 		// 네이버페이 주문형 반품/교환 보류 여부 설정
 		if (TscConstants.PgGb.NAVER_ORDER.value().equals(pgGb)) {
-			npayChangeHoldYn = "N";
+			npayChangeHoldYn 				= map.getString("npayChangeHoldYn");
 		}
 
 		// 3. 주문변경정보, 주문정보, 환불정보 (배송정책코드 별)
@@ -1053,7 +1053,11 @@ public class TscOrderChangeService {
 
 			mav.setInt("orgAddPayCost", payAmt);
 
-			if(pg != null && TscConstants.PgGb.NAVER_ORDER.value().equals(pg.getPgGb())) {
+			Payment pay = new Payment();
+			pay.setOrdChgSq(ordChgSq);
+			pay.setOrdNo(ordNo);
+			pay = orderChangeDao.getPaymentInfo(pay);
+			if(pay != null && TscConstants.PgGb.NAVER_ORDER.value().equals(pay.getPgGb())) {
 				Collection<Order> dtlList = naverPayDao.getOrderDetailInfoFromOrdChgSq(order);
 				for(Order dtl : dtlList) {
 					if("scm".equals(env.getProperty("server.site.name"))) {
@@ -1142,7 +1146,7 @@ public class TscOrderChangeService {
 		if(StringUtils.isNotBlank(excReq.getPgGb()) && TscConstants.PgGb.NAVER_ORDER.value().equals(excReq.getPgGb())) {
 			// 2021.08.18 card007 네이버페이 주문형 교환신청의 경우 교환접수승인대기로 변경
 			orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE_APPROVE_WAIT.value();
-			npayChangeHoldYn = "Y";
+			npayChangeHoldYn = excReq.getNpayChangeHoldYn();
 
 			// 핸드폰번호 하이픈 처리
 			excReq.setHypenRecipPhone();
@@ -1671,7 +1675,10 @@ public class TscOrderChangeService {
 			result.set("status", GagaResponseStatus.SUCCESS.getCode());
 
 			// 6. 네이버페이 주문시 네이버페이 교환 반려 송부
-			if(TscConstants.PgGb.NAVER_ORDER.value().equals(pg.getPgGb())) {
+			Payment pay = new Payment();
+			pay.setOrdNo(ordNo);
+			pay = orderChangeDao.getPaymentInfo(pay);
+			if(TscConstants.PgGb.NAVER_ORDER.value().equals(pay.getPgGb())) {
 				// 반품 반려 정보 조회
 				Order order = new Order();
 				order.setOrdChgSq(ordChgSq);