فهرست منبع

이태영 - 20210503 USAFE 보증보험 로직 위치 이동

xodud1202 5 سال پیش
والد
کامیت
bea74a3d9e

+ 137 - 0
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -708,4 +708,141 @@ public class TsfOrderService {
 
 		return result;
 	}
+
+	/**
+	 * USAFE 보증보험 신청
+	 * temp.setItemNmArr(goodsNameArr);			// 상품명 배열
+	 * temp.setGoodsPriceArr(goodsPriceArr);	// 상품별 가격 배열
+	 * temp.setItemQtyArr(goodsQuantityArr);	// 상품별 수량 배열
+	 * temp.setOrdNo(1);						// 주문번호
+	 * temp.setRealOrdAmt(32000);				// 결제금액
+	 * temp.setBirthYmd("198912021");			// 생년월일 + 성별(남자 : 1, 여자 : 2)
+	 * temp.setPayMeans(TscConstants.PayMeans.ACCOUNT_TRANSFER.value());		// 무통장입금 or 계좌이체
+	 * temp.setBankNm("신한은행");				// 은행명  >> PG 송부 후 result에서 값 입력하면됨
+	 * temp.setOrdNm("이태영");					// 주문자명
+	 * temp.setOrdTelno("");					// 주문자전화1 ("-" 포함)
+	 * temp.setOrdPhnno("010-7111-4489");		// 주문자전화2 ("-" 포함)
+	 * temp.setRecipZipcode("08755");			// 주문자우편번호
+	 * temp.setRecipAddr("서울시 관악구 신림동 1414-26 해피타워 501호");	// 주문자주소
+	 * temp.setOrdEmail("xodud1202@naver.com");	// 주문자이메일
+	 * temp.setRecipNm("이태영");				// 수령인명
+	 * temp.setRecipTelno("");					// 수령인전화번호
+	 * temp.setRecipPhnno("010-7111-4489");		// 수령인휴대폰번호
+	 * temp.setCustNo(100010);					// 고객번호
+	 *
+	 * 	* 계좌이체 : pgTid, 무통장입금 : 가상계좌번호 *
+	 * temp.setPgTid("20210423952698");			// temp.setVaNo("110242222222");  >> PG 송부 후 result에서 값 입력하면됨
+	 *
+	 * @param param
+	 * @author xodud1202
+	 * @since 2021. 04. 26
+	 */
+	@Transactional("shopTxnManager")
+	public String uSafeGuaranteeInsurance(Order param) {
+		InsuranceManager manager = new InsuranceManager(env.getProperty("usafe.guarantee.send.url") , null );
+
+		InsuranceInfo dInfo = new InsuranceInfo();
+
+		String gubun = "A0";		// 고정
+		String payMethod = "";
+		String payInfo2 = "";
+		String sign = "YYY";
+
+		if(TscConstants.PayMeans.ACCOUNT_TRANSFER.value().equals(param.getPayMeans())) {
+			payMethod = "BMC";
+			payInfo2 = param.getPgTid();
+			param.setIfYn("Y");				// 인터페이스 송부 완료(입금확인)
+		} else if (TscConstants.PayMeans.BANK_DEPOSIT.value().equals(param.getPayMeans())) {
+			payMethod = "CAS";
+			payInfo2 = param.getVaNo();
+			param.setIfYn("N");				// 인터페이스 송부 완료X (입금확인시 Y로 UPDATE 예정)
+		}
+
+		if(StringUtils.isEmpty(param.getOrdTelno())) {	param.setOrdTelno(param.getOrdPhnno());	}
+		if(StringUtils.isEmpty(param.getRecipTelno())) {	param.setRecipTelno(param.getRecipPhnno());	}
+
+		param.setRecipZipcode(param.getRecipZipcode().replaceAll("-", ""));
+		if(param.getRecipZipcode().length() < 6) {
+			param.setRecipZipcode(param.getRecipZipcode() + "X");
+		}
+
+		param.setGoodsCnt(String.valueOf(param.getItemNmArr().length));
+
+		dInfo.setGubun(gubun);
+		dInfo.setMallId(env.getProperty("usafe.guarantee.mall.id"));
+		dInfo.setOId(String.valueOf(param.getOrdNo()));
+		dInfo.setTotalMoney(String.valueOf(param.getRealOrdAmt()));
+		dInfo.setPId(param.getBirthYmd());
+		dInfo.setPayMethod(payMethod);
+		dInfo.setPayInfo1(param.getBankNm());
+		dInfo.setPayInfo2(payInfo2);
+		dInfo.setOrderNm(param.getOrdNm());
+		dInfo.setOrderHomeTel(param.getOrdTelno());
+		dInfo.setOrderHpTel(param.getOrdPhnno());
+		dInfo.setOrderZip(param.getRecipZipcode());
+		dInfo.setOrderAddress(param.getRecipAddr());
+		dInfo.setOrderEmail(param.getOrdEmail());
+		dInfo.setGoodsCount(param.getGoodsCnt());
+		dInfo.setAcceptor(param.getRecipNm());
+		dInfo.setDeliveryTel1(param.getRecipTelno());
+		dInfo.setDeliveryTel2(param.getRecipPhnno());
+		dInfo.setGoodsNameArr(param.getItemNmArr());
+		dInfo.setGoodsPriceArr(param.getGoodsPriceArr());
+		dInfo.setGoodsQuantityArr(param.getItemQtyArr());
+		dInfo.setSign(sign);
+
+		String result = manager.contractInsurance(dInfo);
+
+		// result : 0|주문번호		, 성공시
+		// result : 1|Error Message	, 실패시
+		String[] rtnResult = result.split("[\u007C]");
+
+		param.setResultCd(rtnResult[0]);
+		param.setResultMsg(rtnResult[1]);
+
+		if("0".equals(param.getResultCd())) {
+			param.setInsNo(param.getResultMsg());
+		} else {
+			param.setIfYn("F");			// 인터페이스 송부 실패
+		}
+
+		coreOrderDao.createInsurance(param);
+
+		return "SUCCESS";
+	}
+
+	/**
+	 * USAFE 보증보험 입금 확인(보증보험 신청 완료 > 완료 후 취소안됨 주의)
+	 * temp.setOrdNo(111);			// 주문번호
+	 * @param param
+	 * @author xodud1202
+	 * @since 2021. 04. 26
+	 */
+	@Transactional("shopTxnManager")
+	public String uSafeGuaranteeDepositCompleted(Order param) {
+		// 보증보험 정보 조회
+		Order insurance = coreOrderDao.getInsuranceInfo(param);
+
+		// 보증보험 신청 이력이 없으면 완료안됨
+		if(insurance != null) {
+			// 보증보험 입금 완료 정보 송부
+			InsuranceManager manager = new InsuranceManager(env.getProperty("usafe.guarantee.send.url"), null);
+			String result = manager.confirmPayment(env.getProperty("usafe.guarantee.mall.id"), String.valueOf(param.getOrdNo()), insurance.getInsNo());
+
+			// 송부 결과
+			String rtnResult[]	= result.split("[\u007C]");
+			param.setResultCd(rtnResult[0]);
+			param.setResultMsg(rtnResult[1]);
+
+			if("0".equals(param.getResultCd())) {
+				param.setIfYn("Y");
+			} else {
+				param.setIfYn("F");
+			}
+
+			coreOrderDao.updateInsuranceInfo(param);
+		}
+
+		return "SUCCESS";
+	}
 }

+ 1 - 1
src/main/java/com/style24/front/biz/web/TsfPgController.java

@@ -74,7 +74,7 @@ public class TsfPgController extends TsfBaseController {
 			coreOrderService.updateOrderInfoVBank(order);
 
 			// USAFE 보증보험 입금확인 송부
-			coreOrderService.uSafeGuaranteeDepositCompleted(order);
+			orderService.uSafeGuaranteeDepositCompleted(order);
 		} catch(Exception e) {
 			result = "9999";		// 실패. return 하지 말것.
 		}