|
|
@@ -9,8 +9,7 @@ import java.util.*;
|
|
|
import com.nhncorp.psinfra.toolkit.SimpleCryptLib;
|
|
|
import com.style24.core.biz.checkout.MallServiceLocator;
|
|
|
import com.style24.core.biz.checkout.MallServiceSOAP11BindingStub;
|
|
|
-import com.style24.core.biz.checkout.base.AccessCredentialsType;
|
|
|
-import com.style24.core.biz.checkout.base.DeliveryMethodType;
|
|
|
+import com.style24.core.biz.checkout.base.*;
|
|
|
import com.style24.core.biz.checkout.mall.*;
|
|
|
import com.style24.core.biz.dao.TscOrderChangeDao;
|
|
|
import com.style24.persistence.domain.OrderChange;
|
|
|
@@ -317,7 +316,7 @@ public class TscNaverPayService {
|
|
|
for(Order order : confirmList) {
|
|
|
//서명생성
|
|
|
generateSignature("ApproveCancelApplication", env.getProperty("naverPay.secret.key"));
|
|
|
- log.debug("ApproveCancelApplication(취소요청승인 데이타 송신) :: timeStamp === " + timeStamp);
|
|
|
+ log.info("ApproveCancelApplication(취소요청승인 데이타 송신) :: timeStamp === " + timeStamp);
|
|
|
|
|
|
//인증정보
|
|
|
accessCredentialsType.setAccessLicense(env.getProperty("naverPay.access.license"));
|
|
|
@@ -343,12 +342,12 @@ public class TscNaverPayService {
|
|
|
log.info("취소승인 성공 주문번호 ===> " + param.getOrdNo());
|
|
|
log.info("취소승인 성공 네이버상품주문번호 ===> " + order.getNpayOrdDtlNo());
|
|
|
} else {
|
|
|
- log.debug("취소승인 에러");
|
|
|
- log.debug("주문번호 ===> " + param.getOrdNo());
|
|
|
- log.debug("네이버주문번호 ===> " + order.getNpayOrdDtlNo());
|
|
|
- log.debug("Code : " + approveCancelApplicationResponse.getError().getCode());
|
|
|
- log.debug("Message : " + approveCancelApplicationResponse.getError().getMessage());
|
|
|
- log.debug("Detail : " + approveCancelApplicationResponse.getError().getDetail());
|
|
|
+ log.info("취소승인 에러");
|
|
|
+ log.info("주문번호 ===> " + param.getOrdNo());
|
|
|
+ log.info("네이버주문번호 ===> " + order.getNpayOrdDtlNo());
|
|
|
+ log.info("Code : " + approveCancelApplicationResponse.getError().getCode());
|
|
|
+ log.info("Message : " + approveCancelApplicationResponse.getError().getMessage());
|
|
|
+ log.info("Detail : " + approveCancelApplicationResponse.getError().getDetail());
|
|
|
|
|
|
Order fail = new Order();
|
|
|
fail.setErrorReason("취소 완료 주문 정보 송부 에러");
|
|
|
@@ -469,6 +468,87 @@ public class TscNaverPayService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 네이버페이 교환 반려 정보 송부
|
|
|
+ * @param chnge
|
|
|
+ * @param userNo
|
|
|
+ * @author xodud1202
|
|
|
+ * @since 2021. 06. 27
|
|
|
+ */
|
|
|
+ public void sendNaverPayRejectExchange(OrderChange param, int userNo) throws Exception {
|
|
|
+ Collection<OrderChange> rejectList = orderChangeDao.approveCancelRequestInfo(param);
|
|
|
+
|
|
|
+ Security.addProvider(new BouncyCastleProvider());
|
|
|
+ AccessCredentialsType accessCredentialsType = new AccessCredentialsType();
|
|
|
+ MallServiceLocator MSL = new MallServiceLocator(env.getProperty("naverPay.port.address"));
|
|
|
+ MallServiceSOAP11BindingStub stub = new MallServiceSOAP11BindingStub();
|
|
|
+
|
|
|
+ stub = (MallServiceSOAP11BindingStub) MSL.getMallServiceSOAP11Port();
|
|
|
+
|
|
|
+ RejectExchangeRequest rejectExchgneRequest = null;
|
|
|
+ RejectExchangeResponse rejectExchgneResponse = null;
|
|
|
+
|
|
|
+ for (OrderChange change : rejectList) {
|
|
|
+ if(TscConstants.PgGb.NAVER_ORDER.value().equals(change.getPgGb())) {
|
|
|
+ // 서명생성
|
|
|
+ generateSignature("RejectExchange", env.getProperty("naverPay.secret.key"));
|
|
|
+ log.info("RejectExchange(교환반려 주문 네이버로 송신) :: timeStamp === " + timeStamp);
|
|
|
+
|
|
|
+ //인증정보
|
|
|
+ accessCredentialsType.setAccessLicense(env.getProperty("naverPay.access.license"));
|
|
|
+ accessCredentialsType.setSignature(signature);
|
|
|
+ accessCredentialsType.setTimestamp(timeStamp);
|
|
|
+
|
|
|
+ rejectExchgneRequest = new RejectExchangeRequest();
|
|
|
+ rejectExchgneRequest.setAccessCredentials(accessCredentialsType);
|
|
|
+ rejectExchgneRequest.setDetailLevel("Full");
|
|
|
+ rejectExchgneRequest.setVersion(env.getProperty("naverPay.version"));
|
|
|
+ rejectExchgneRequest.setRequestID("");
|
|
|
+ rejectExchgneRequest.setProductOrderID(change.getNpayOrdDtlNo());
|
|
|
+ rejectExchgneRequest.setRejectDetailContent("교환반려");
|
|
|
+
|
|
|
+ rejectExchgneResponse = stub.rejectExchange(rejectExchgneRequest);
|
|
|
+
|
|
|
+ String resultStr = "";
|
|
|
+ if (rejectExchgneResponse.getResponseType() != null) {
|
|
|
+ resultStr = rejectExchgneResponse.getResponseType().toUpperCase();
|
|
|
+ }
|
|
|
+
|
|
|
+ if ("SUCCESS".equals(resultStr)) {
|
|
|
+ log.info("교환반려 성공 주문번호===>"+change.getOrdNo());
|
|
|
+ log.info("교환반려 성공 네이버상품주문번호===>"+change.getNpayOrdDtlNo());
|
|
|
+ } else {
|
|
|
+ log.info("교환반려 에러");
|
|
|
+ log.info("주문번호 ===> " + change.getOrdNo());
|
|
|
+ log.info("네이버상품주문번호 ===> " + change.getNpayOrdDtlNo());
|
|
|
+ log.info("Code : " + rejectExchgneResponse.getError().getCode());
|
|
|
+ log.info("Message : " + rejectExchgneResponse.getError().getMessage());
|
|
|
+ log.info("Detail : " + rejectExchgneResponse.getError().getDetail());
|
|
|
+
|
|
|
+ try {
|
|
|
+ Order fail = new Order();
|
|
|
+ fail.setErrorReason("교환 반려 데이터 송부 에러");
|
|
|
+ fail.setOrdNo(change.getOrdNo());
|
|
|
+ fail.setNpayOrdDtlNo(change.getNpayOrdDtlNo());
|
|
|
+ fail.setOptCd("sendNaverPayRejectExchange");
|
|
|
+ fail.setResultCd(rejectExchgneResponse.getError().getCode());
|
|
|
+ fail.setResultMsg(rejectExchgneResponse.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(userNo);
|
|
|
+
|
|
|
+ orderDao.createNaverPayErrorLog(fail);
|
|
|
+ } catch(Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ throw new IllegalStateException("실패");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 네이버페이 반품 반려 정보 송부
|
|
|
* @param chnge
|
|
|
@@ -490,60 +570,234 @@ public class TscNaverPayService {
|
|
|
RejectReturnResponse rejectReturnResponse = null;
|
|
|
|
|
|
for (OrderChange change : rejectList) {
|
|
|
- // 서명생성
|
|
|
- generateSignature("RejectReturn", env.getProperty("naverPay.secret.key"));
|
|
|
- log.debug("RejectReturn(취소반려 주문 네이버로 송신) :: timeStamp === " + timeStamp);
|
|
|
+ if(TscConstants.PgGb.NAVER_ORDER.value().equals(change.getPgGb())) {
|
|
|
+ // 서명생성
|
|
|
+ generateSignature("RejectReturn", env.getProperty("naverPay.secret.key"));
|
|
|
+ log.info("RejectReturn(반품반려 주문 네이버로 송신) :: timeStamp === " + timeStamp);
|
|
|
|
|
|
- //인증정보
|
|
|
- accessCredentialsType.setAccessLicense(env.getProperty("naverPay.access.license"));
|
|
|
- accessCredentialsType.setSignature(signature);
|
|
|
- accessCredentialsType.setTimestamp(timeStamp);
|
|
|
+ //인증정보
|
|
|
+ accessCredentialsType.setAccessLicense(env.getProperty("naverPay.access.license"));
|
|
|
+ accessCredentialsType.setSignature(signature);
|
|
|
+ accessCredentialsType.setTimestamp(timeStamp);
|
|
|
+
|
|
|
+ rejectReturnRequest = new RejectReturnRequest();
|
|
|
+ rejectReturnRequest.setAccessCredentials(accessCredentialsType);
|
|
|
+ rejectReturnRequest.setDetailLevel("Full");
|
|
|
+ rejectReturnRequest.setVersion(env.getProperty("naverPay.version"));
|
|
|
+ rejectReturnRequest.setRequestID("");
|
|
|
+ rejectReturnRequest.setProductOrderID(change.getNpayOrdDtlNo());
|
|
|
+ rejectReturnRequest.setRejectDetailContent("반품반려");
|
|
|
+
|
|
|
+ rejectReturnResponse = stub.rejectReturn(rejectReturnRequest);
|
|
|
+
|
|
|
+ String resultStr = "";
|
|
|
+ if (rejectReturnResponse.getResponseType() != null) {
|
|
|
+ resultStr = rejectReturnResponse.getResponseType().toUpperCase();
|
|
|
+ }
|
|
|
+
|
|
|
+ if ("SUCCESS".equals(resultStr)) {
|
|
|
+ log.info("반품반려 성공 주문번호===>"+change.getOrdNo());
|
|
|
+ log.info("반품반려 성공 네이버상품주문번호===>"+change.getNpayOrdDtlNo());
|
|
|
+ } else {
|
|
|
+ log.info("반품반려 에러");
|
|
|
+ log.info("주문번호 ===> " + change.getOrdNo());
|
|
|
+ log.info("네이버상품주문번호 ===> " + change.getNpayOrdDtlNo());
|
|
|
+ log.info("Code : " + rejectReturnResponse.getError().getCode());
|
|
|
+ log.info("Message : " + rejectReturnResponse.getError().getMessage());
|
|
|
+ log.info("Detail : " + rejectReturnResponse.getError().getDetail());
|
|
|
|
|
|
- rejectReturnRequest = new RejectReturnRequest();
|
|
|
- rejectReturnRequest.setAccessCredentials(accessCredentialsType);
|
|
|
- rejectReturnRequest.setDetailLevel("Full");
|
|
|
- rejectReturnRequest.setVersion(env.getProperty("naverPay.version"));
|
|
|
- rejectReturnRequest.setRequestID("");
|
|
|
- rejectReturnRequest.setProductOrderID(change.getNpayOrdDtlNo());
|
|
|
- rejectReturnRequest.setRejectDetailContent("취소반려");
|
|
|
+ try {
|
|
|
+ Order fail = new Order();
|
|
|
+ fail.setErrorReason("반품 반려 데이터 송부 에러");
|
|
|
+ fail.setOrdNo(change.getOrdNo());
|
|
|
+ fail.setNpayOrdDtlNo(change.getNpayOrdDtlNo());
|
|
|
+ fail.setOptCd("sendNaverPayRejectReturn");
|
|
|
+ fail.setResultCd(rejectReturnResponse.getError().getCode());
|
|
|
+ fail.setResultMsg(rejectReturnResponse.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(userNo);
|
|
|
+
|
|
|
+ orderDao.createNaverPayErrorLog(fail);
|
|
|
+ } catch(Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
|
|
|
- rejectReturnResponse = stub.rejectReturn(rejectReturnRequest);
|
|
|
+ throw new IllegalStateException("실패");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 네이버페이 반품 완료 정보 송부
|
|
|
+ * @param chnge
|
|
|
+ * @param userNo
|
|
|
+ * @author xodud1202
|
|
|
+ * @since 2021. 06. 27
|
|
|
+ */
|
|
|
+ public void sendNaverPayReturnComplete(OrderChange param, int userNo) throws Exception {
|
|
|
+ Collection<OrderChange> successList = orderChangeDao.approveCancelRequestInfo(param);
|
|
|
+
|
|
|
+ Security.addProvider(new BouncyCastleProvider());
|
|
|
+ AccessCredentialsType accessCredentialsType = new AccessCredentialsType();
|
|
|
+ MallServiceLocator MSL = new MallServiceLocator(env.getProperty("naverPay.port.address"));
|
|
|
+ MallServiceSOAP11BindingStub stub = new MallServiceSOAP11BindingStub();
|
|
|
+
|
|
|
+ stub = (MallServiceSOAP11BindingStub) MSL.getMallServiceSOAP11Port();
|
|
|
+
|
|
|
+ ApproveReturnApplicationRequest returnCompleteRequest = null;
|
|
|
+ ApproveReturnApplicationResponse returnCompleteResponse = null;
|
|
|
+
|
|
|
+ ReleaseReturnHoldRequest releaseReturnHoldRequest = null;
|
|
|
+ ReleaseReturnHoldResponse releaseReturnHoldResponse = null;
|
|
|
+
|
|
|
+ // 반품배송비 결제방법 보류해제 예외 방법
|
|
|
+ String passRfdDelPayType = "환불금에서 차감";
|
|
|
+
|
|
|
+ // 반품승인 하기 전 반품배송비결제방법을 확인하여
|
|
|
+ // 보류가 걸려있으면 보류를 해제한다. (환불금에서차감 제외)
|
|
|
+ for(OrderChange change : successList) {
|
|
|
String resultStr = "";
|
|
|
- if (rejectReturnResponse.getResponseType() != null) {
|
|
|
- resultStr = rejectReturnResponse.getResponseType().toUpperCase();
|
|
|
+ String[] productOrderIdList = new String[] {change.getNpayOrdDtlNo()};
|
|
|
+
|
|
|
+ // 상품주문상태 조회
|
|
|
+ ProductOrderInfo[] productOrderInfo = productOrderInfoList(productOrderIdList);
|
|
|
+
|
|
|
+ if(productOrderInfo != null && productOrderInfo.length > 0) {
|
|
|
+ ReturnInfo returnInfo = productOrderInfo[0].getReturnInfo();
|
|
|
+ String returnPayType = ""; // 반품배송비 결제방법
|
|
|
+
|
|
|
+ HoldbackStatusType returnHoldStatus = null;
|
|
|
+
|
|
|
+ if (returnInfo != null) {
|
|
|
+ if (returnInfo.getHoldbackStatus() != null) {
|
|
|
+ returnHoldStatus = returnInfo.getHoldbackStatus(); // 보류 상태 코드
|
|
|
+ }
|
|
|
+
|
|
|
+ // 반품배송비 오류 추가
|
|
|
+ if (returnInfo.getClaimDeliveryFeePayMethod() != null) {
|
|
|
+ returnPayType = returnInfo.getClaimDeliveryFeePayMethod(); // 반품배송비 결제방법
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if( (returnPayType != null && !returnPayType.equals("")) && (returnHoldStatus.toString() != null && !returnHoldStatus.equals(""))) {
|
|
|
+ // 보류중이고 환불금 차감 형식이 아니면 보류해제 처리
|
|
|
+ if("HOLDBACK".equals(returnHoldStatus.toString()) && !passRfdDelPayType.equals(returnPayType)) {
|
|
|
+ //서명생성
|
|
|
+ generateSignature("ReleaseReturnHold", env.getProperty("naverPay.secret.key"));
|
|
|
+ log.info("ReleaseReturnHold(반품 보류해제 네이버로 송신) :: timeStamp === " + timeStamp);
|
|
|
+
|
|
|
+ //인증정보
|
|
|
+ accessCredentialsType.setAccessLicense(env.getProperty("naverPay.access.license"));
|
|
|
+ accessCredentialsType.setSignature(signature);
|
|
|
+ accessCredentialsType.setTimestamp(timeStamp);
|
|
|
+
|
|
|
+ releaseReturnHoldRequest = new ReleaseReturnHoldRequest();
|
|
|
+ releaseReturnHoldRequest.setAccessCredentials(accessCredentialsType);
|
|
|
+ releaseReturnHoldRequest.setRequestID("");
|
|
|
+ releaseReturnHoldRequest.setDetailLevel("Full");
|
|
|
+ releaseReturnHoldRequest.setVersion(env.getProperty("naverPay.version"));
|
|
|
+ releaseReturnHoldRequest.setProductOrderID(change.getNpayOrdDtlNo());
|
|
|
+
|
|
|
+ releaseReturnHoldResponse = stub.releaseReturnHold(releaseReturnHoldRequest);
|
|
|
+
|
|
|
+ if(releaseReturnHoldResponse.getResponseType() != null ) {
|
|
|
+ resultStr = releaseReturnHoldResponse.getResponseType().toUpperCase();
|
|
|
+ }
|
|
|
+
|
|
|
+ if ("SUCCESS".equals(resultStr)) {
|
|
|
+ log.info("보류해제 성공 네이버상품주문번호 ===> " + change.getNpayOrdDtlNo());
|
|
|
+ log.info("보류해제 성공 반품배송비결제방법 ===> " + returnPayType);
|
|
|
+ } else {
|
|
|
+ log.info("보류해제 에러");
|
|
|
+ log.info("네이버상품주문번호 ===> " + change.getNpayOrdDtlNo());
|
|
|
+ log.info("반품배송비 결제방법 >>>> " + returnPayType);
|
|
|
+ log.info("Code : " + releaseReturnHoldResponse.getError().getCode());
|
|
|
+ log.info("Message : " + releaseReturnHoldResponse.getError().getMessage());
|
|
|
+ log.info("Detail : " + releaseReturnHoldResponse.getError().getDetail());
|
|
|
+
|
|
|
+ try {
|
|
|
+ Order fail = new Order();
|
|
|
+ fail.setErrorReason("반품 보류 해제 데이터 송부 에러");
|
|
|
+ fail.setOrdNo(change.getOrdNo());
|
|
|
+ fail.setNpayOrdDtlNo(change.getNpayOrdDtlNo());
|
|
|
+ fail.setOptCd("sendNaverPayReturnComplete");
|
|
|
+ fail.setResultCd(releaseReturnHoldResponse.getError().getCode());
|
|
|
+ fail.setResultMsg(releaseReturnHoldResponse.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(userNo);
|
|
|
+
|
|
|
+ orderDao.createNaverPayErrorLog(fail);
|
|
|
+ } catch(Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- if ("SUCCESS".equals(resultStr)) {
|
|
|
- log.debug("반품반려 성공 주문번호===>"+change.getOrdNo());
|
|
|
- log.debug("반품반려 성공 네이버상품주문번호===>"+change.getNpayOrdDtlNo());
|
|
|
- } else {
|
|
|
- log.debug("반품반려 에러");
|
|
|
- log.debug("주문번호 ===> " + change.getOrdNo());
|
|
|
- log.debug("네이버상품주문번호 ===> " + change.getNpayOrdDtlNo());
|
|
|
- log.debug("Code : " + rejectReturnResponse.getError().getCode());
|
|
|
- log.debug("Message : " + rejectReturnResponse.getError().getMessage());
|
|
|
- log.debug("Detail : " + rejectReturnResponse.getError().getDetail());
|
|
|
-
|
|
|
- try {
|
|
|
- Order fail = new Order();
|
|
|
- fail.setErrorReason("반품 반려 데이터 송부 에러");
|
|
|
- fail.setOrdNo(change.getOrdNo());
|
|
|
- fail.setNpayOrdDtlNo(change.getNpayOrdDtlNo());
|
|
|
- fail.setOptCd("sendNaverPayRejectReturn");
|
|
|
- fail.setResultCd(rejectReturnResponse.getError().getCode());
|
|
|
- fail.setResultMsg(rejectReturnResponse.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(userNo);
|
|
|
+ for (OrderChange change : successList) {
|
|
|
+ if(TscConstants.PgGb.NAVER_ORDER.value().equals(change.getPgGb())) {
|
|
|
+ // 서명생성
|
|
|
+ generateSignature("ApproveReturnApplication", env.getProperty("naverPay.secret.key"));
|
|
|
+ log.info("ApproveReturnApplication(반품완료 주문 네이버로 송신) :: timeStamp === " + timeStamp);
|
|
|
|
|
|
- orderDao.createNaverPayErrorLog(fail);
|
|
|
- } catch(Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
+ //인증정보
|
|
|
+ accessCredentialsType.setAccessLicense(env.getProperty("naverPay.access.license"));
|
|
|
+ accessCredentialsType.setSignature(signature);
|
|
|
+ accessCredentialsType.setTimestamp(timeStamp);
|
|
|
+
|
|
|
+ returnCompleteRequest = new ApproveReturnApplicationRequest();
|
|
|
+ returnCompleteRequest.setAccessCredentials(accessCredentialsType);
|
|
|
+ returnCompleteRequest.setDetailLevel("Full");
|
|
|
+ returnCompleteRequest.setVersion(env.getProperty("naverPay.version"));
|
|
|
+ returnCompleteRequest.setRequestID("");
|
|
|
+ returnCompleteRequest.setProductOrderID(change.getNpayOrdDtlNo());
|
|
|
+ // returnCompleteRequest.setEtcFeeDemandAmount(shipAmt); // (구) 네이버페이 API에서만 사용.
|
|
|
+
|
|
|
+ returnCompleteResponse = stub.approveReturnApplication(returnCompleteRequest);
|
|
|
+
|
|
|
+ String resultStr = "";
|
|
|
+ if (returnCompleteResponse.getResponseType() != null) {
|
|
|
+ resultStr = returnCompleteResponse.getResponseType().toUpperCase();
|
|
|
}
|
|
|
|
|
|
- throw new IllegalStateException("실패");
|
|
|
+ if ("SUCCESS".equals(resultStr)) {
|
|
|
+ log.info("반품승인 성공 주문번호===>"+change.getOrdNo());
|
|
|
+ log.info("반품승인 성공 네이버상품주문번호===>"+change.getNpayOrdDtlNo());
|
|
|
+ } else {
|
|
|
+ log.info("반품반려 에러");
|
|
|
+ log.info("주문번호 ===> " + change.getOrdNo());
|
|
|
+ log.info("네이버상품주문번호 ===> " + change.getNpayOrdDtlNo());
|
|
|
+ log.info("Code : " + returnCompleteResponse.getError().getCode());
|
|
|
+ log.info("Message : " + returnCompleteResponse.getError().getMessage());
|
|
|
+ log.info("Detail : " + returnCompleteResponse.getError().getDetail());
|
|
|
+
|
|
|
+ try {
|
|
|
+ Order fail = new Order();
|
|
|
+ fail.setErrorReason("반품 완료 데이터 송부 에러");
|
|
|
+ fail.setOrdNo(change.getOrdNo());
|
|
|
+ fail.setNpayOrdDtlNo(change.getNpayOrdDtlNo());
|
|
|
+ fail.setOptCd("sendNaverPayReturnComplete");
|
|
|
+ fail.setResultCd(returnCompleteResponse.getError().getCode());
|
|
|
+ fail.setResultMsg(returnCompleteResponse.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(userNo);
|
|
|
+
|
|
|
+ orderDao.createNaverPayErrorLog(fail);
|
|
|
+ } catch(Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ throw new IllegalStateException("실패");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -566,4 +820,66 @@ public class TscNaverPayService {
|
|
|
log.error(e.getMessage()); //서명정보 실패
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 주문상세 정보 조회
|
|
|
+ * @param productOrderIdList
|
|
|
+ * @return
|
|
|
+ * @author xodud1202
|
|
|
+ * @since 2021. 05. 28
|
|
|
+ */
|
|
|
+ @Transactional("shopTxnManager")
|
|
|
+ public ProductOrderInfo[] productOrderInfoList(String[] productOrderIdList) {
|
|
|
+ ProductOrderInfo[] result = null;
|
|
|
+ try {
|
|
|
+ if (productOrderIdList != null) {
|
|
|
+ Security.addProvider(new BouncyCastleProvider());
|
|
|
+ AccessCredentialsType accessCredentialsType = new AccessCredentialsType();
|
|
|
+ MallServiceLocator MSL = new MallServiceLocator(env.getProperty("naverPay.port.address"));
|
|
|
+ MallServiceSOAP11BindingStub stub = new MallServiceSOAP11BindingStub();
|
|
|
+ stub = (MallServiceSOAP11BindingStub) MSL.getMallServiceSOAP11Port();
|
|
|
+ GetProductOrderInfoListRequest request = new GetProductOrderInfoListRequest();
|
|
|
+ GetProductOrderInfoListResponse response = new GetProductOrderInfoListResponse();
|
|
|
+
|
|
|
+ //서명생성
|
|
|
+ generateSignature("GetProductOrderInfoList", env.getProperty("naverPay.secret.key"));
|
|
|
+ log.info("GetProductOrderInfoList(상품주문 내역 상세 조회) :: timeStamp === " + timeStamp);
|
|
|
+
|
|
|
+ //인증정보
|
|
|
+ accessCredentialsType.setAccessLicense(env.getProperty("naverPay.access.license"));
|
|
|
+ accessCredentialsType.setSignature(signature);
|
|
|
+ accessCredentialsType.setTimestamp(timeStamp);
|
|
|
+
|
|
|
+ request.setAccessCredentials(accessCredentialsType);
|
|
|
+ request.setDetailLevel("Full");
|
|
|
+ request.setVersion(env.getProperty("naverPay.version"));
|
|
|
+ request.setRequestID("");
|
|
|
+ request.setProductOrderIDList(productOrderIdList);
|
|
|
+
|
|
|
+ //GetChangedProductOrderList Response 수신
|
|
|
+ response = stub.getProductOrderInfoList(request);
|
|
|
+
|
|
|
+ String resultStr = "";
|
|
|
+ if (response.getResponseType() != null) {
|
|
|
+ resultStr = response.getResponseType().toUpperCase();
|
|
|
+ }
|
|
|
+
|
|
|
+ //결과 출력
|
|
|
+ if ("SUCCESS".equals(resultStr)) {
|
|
|
+ result = response.getProductOrderInfoList();
|
|
|
+ } else {
|
|
|
+ log.info("상품주문내역조회 에러");
|
|
|
+ log.info("Code : " + response.getError().getCode());
|
|
|
+ log.info("Message : " + response.getError().getMessage());
|
|
|
+ log.info("Detail : " + response.getError().getDetail());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("***** productOrderInfoList end *****");
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|