소스 검색

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

card007 4 년 전
부모
커밋
b9581c8efc

+ 85 - 4
src/main/java/com/style24/core/biz/service/TscNaverPayService.java

@@ -59,6 +59,8 @@ import com.style24.core.biz.checkout.mall.RejectExchangeRequest;
 import com.style24.core.biz.checkout.mall.RejectExchangeResponse;
 import com.style24.core.biz.checkout.mall.RejectReturnRequest;
 import com.style24.core.biz.checkout.mall.RejectReturnResponse;
+import com.style24.core.biz.checkout.mall.ReleaseExchangeHoldRequest;
+import com.style24.core.biz.checkout.mall.ReleaseExchangeHoldResponse;
 import com.style24.core.biz.checkout.mall.ReleaseReturnHoldRequest;
 import com.style24.core.biz.checkout.mall.ReleaseReturnHoldResponse;
 import com.style24.core.biz.checkout.mall.RequestReturnRequest;
@@ -2553,7 +2555,7 @@ public class TscNaverPayService {
 	}
 
 	/**
-	 * 네이버페이 주문형 교환보류/해제 요청
+	 * 네이버페이 주문형 교환보류 요청
 	 * 
 	 * @param OrderChange
 	 * @author card007
@@ -2574,7 +2576,7 @@ public class TscNaverPayService {
 
 			if (order != null && TscConstants.PgGb.NAVER_ORDER.value().equals(order.getPgGb())) {
 				// 서명생성
-				generateSignature("RequestReturn", env.getProperty("naverPay.secret.key"));
+				generateSignature("WithholdExchange", env.getProperty("naverPay.secret.key"));
 				log.info("WithholdExchange(교환보류 네이버로 송신) :: timeStamp === " + timeStamp);
 
 				//인증정보
@@ -2601,11 +2603,11 @@ public class TscNaverPayService {
 
 				if ("SUCCESS".equals(resultStr)) {
 					log.info("교환보류 성공 주문번호===>" + order.getOrdNo());
-					log.info("교환보류 성공 네이버상품주문번호===>" + order.getNpayOrdDtlNo());
+					log.info("교환보류 성공 네이버상품주문번호===>" + npayOrdDtlNo);
 				} else {
 					log.info("교환보류 에러");
 					log.info("주문번호 ===>" + order.getOrdNo());
-					log.info("네이버상품주문번호 ===> " + order.getNpayOrdDtlNo());
+					log.info("네이버상품주문번호 ===> " + npayOrdDtlNo);
 					log.info("Code : " + withholdExchangeResponse.getError().getCode());
 					log.info("Message : " + withholdExchangeResponse.getError().getMessage());
 					log.info("Detail : " + withholdExchangeResponse.getError().getDetail());
@@ -2635,6 +2637,85 @@ public class TscNaverPayService {
 		return 1;
 	}
 
+	/**
+	 * 네이버페이 주문형 교환보류 해제 요청
+	 *
+	 * @param OrderChange
+	 * @author card007
+	 * @since 2021. 10. 05
+	 */
+	@Transactional("shopTxnManager")
+	public int nPayReleaseExchangeHold(Order order) {
+		String npayOrdDtlNo = naverPayDao.getNaverPayProductOrderId(order);
+
+		try {
+			Security.addProvider(new BouncyCastleProvider());
+			AccessCredentialsType accessCredentialsType = new AccessCredentialsType();
+			MallServiceLocator MSL = new MallServiceLocator(env.getProperty("naverPay.port.address"));
+			MallServiceSOAP11BindingStub stub = (MallServiceSOAP11BindingStub)MSL.getMallServiceSOAP11Port();
+
+			ReleaseExchangeHoldRequest releaseExchangeHoldRequest = new ReleaseExchangeHoldRequest();
+			ReleaseExchangeHoldResponse releaseExchangeHoldResponse = new ReleaseExchangeHoldResponse();
+
+			if (order != null && TscConstants.PgGb.NAVER_ORDER.value().equals(order.getPgGb())) {
+				// 서명생성
+				generateSignature("ReleaseExchangeHold", env.getProperty("naverPay.secret.key"));
+				log.info("ReleaseExchangeHold(교환보류 해제 네이버로 송신) :: timeStamp === " + timeStamp);
+
+				//인증정보
+				accessCredentialsType.setAccessLicense(env.getProperty("naverPay.access.license"));
+				accessCredentialsType.setSignature(signature);
+				accessCredentialsType.setTimestamp(timeStamp);
+
+				releaseExchangeHoldRequest.setAccessCredentials(accessCredentialsType);
+				releaseExchangeHoldRequest.setDetailLevel("Full");
+				releaseExchangeHoldRequest.setVersion(env.getProperty("naverPay.version"));
+				releaseExchangeHoldRequest.setRequestID("");
+				releaseExchangeHoldRequest.setProductOrderID(npayOrdDtlNo);					// 상품 주문 번호
+
+				releaseExchangeHoldResponse = stub.releaseExchangeHold(releaseExchangeHoldRequest);
+
+				String resultStr = "";
+				if (releaseExchangeHoldResponse.getResponseType() != null) {
+					resultStr = releaseExchangeHoldResponse.getResponseType().toUpperCase();
+				}
+
+				if ("SUCCESS".equals(resultStr)) {
+					log.info("교환보류 해제 성공 주문번호===>" + order.getOrdNo());
+					log.info("교환보류 해제 성공 네이버상품주문번호===>" + npayOrdDtlNo);
+				} else {
+					log.info("교환보류 해제 에러");
+					log.info("주문번호 ===>" + order.getOrdNo());
+					log.info("네이버상품주문번호 ===> " + npayOrdDtlNo);
+					log.info("Code : " + releaseExchangeHoldResponse.getError().getCode());
+					log.info("Message : " + releaseExchangeHoldResponse.getError().getMessage());
+					log.info("Detail : " + releaseExchangeHoldResponse.getError().getDetail());
+
+					Order fail = new Order();
+					fail.setErrorReason("교환보류 해제 데이터 송부 에러");
+					fail.setOrdNo(order.getOrdNo());
+					fail.setNpayOrdDtlNo(order.getNpayOrdDtlNo());
+					fail.setOptCd("WithholdExchangeRequest");
+					fail.setResultCd(releaseExchangeHoldResponse.getError().getCode());
+					fail.setResultMsg(releaseExchangeHoldResponse.getError().getMessage());
+					fail.setMallCd(env.getProperty("naverPay.shop.id"));
+					fail.setAccessLicense(env.getProperty("naverPay.access.license"));
+					fail.setSecretKey(env.getProperty("naverPay.secret.key"));
+					fail.setRegNo(order.getRegNo());
+
+					orderDao.createNaverPayErrorLog(fail);
+
+					return 0;
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+			return 0;
+		}
+
+		return 1;
+	}
+
 	/**
 	 * 네이버페이 주문형 반품/교환 보류 여부 수정
 	 * 

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TscNaverPay.xml

@@ -374,7 +374,7 @@
 	<update id="updateNaverPayChangeHold" parameterType="OrderChange">
 		/* TscNaverPay.updateNaverPayChangeHold */
 		UPDATE TB_ORDER_CHANGE
-		   SET NPAY_CHANGE_HOLD_YN = 'Y'
+		   SET NPAY_CHANGE_HOLD_YN = #{npayChangeHoldYn}
 		     , UPD_NO = #{updNo}
 		     , UPD_DT = NOW()
 		 WHERE ORD_CHG_SQ = #{ordChgSq}

+ 2 - 0
src/main/java/com/style24/persistence/mybatis/shop/TscOrderChange.xml

@@ -688,6 +688,7 @@
 		     , WD_INVOICE_NO
 		     , SHIP_COMP_CD
 		     , WD_BF_SEND_YN
+		     , NPAY_CHANGE_HOLD_YN
 		     , REG_NO
 		     , REG_DT
 		     , UPD_NO
@@ -711,6 +712,7 @@
 		     , #{wdInvoiceNo}
 		     , #{shipCompCd}
 		     , IFNULL(NULLIF(#{wdBfSendYn}, ''), 'N')
+		     , #{npayChangeHoldYn}
 		     , #{regNo}
 		     , NOW()
 		     , #{updNo}