|
|
@@ -6,6 +6,7 @@ import java.util.Collection;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.core.env.Environment;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
@@ -18,6 +19,8 @@ import org.springframework.web.servlet.ModelAndView;
|
|
|
|
|
|
import com.gagaframework.web.parameter.GagaMap;
|
|
|
import com.style24.core.biz.service.TscFreegiftService;
|
|
|
+import com.style24.core.biz.service.TscKakaoPayService;
|
|
|
+import com.style24.core.biz.service.TscNaverPayService;
|
|
|
import com.style24.core.biz.service.TscOrderService;
|
|
|
import com.style24.core.support.env.TscConstants;
|
|
|
import com.style24.core.support.message.TscMessageByLocale;
|
|
|
@@ -63,6 +66,12 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
|
|
|
@Autowired
|
|
|
private NiceCertify niceCertify;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TscKakaoPayService coreKakaoPayService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TscNaverPayService coreNaverPayService;
|
|
|
|
|
|
/**
|
|
|
* 회원, 비회원 주문페이지
|
|
|
@@ -738,11 +747,17 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
|
|
|
// 3. 주문기본정보등록(주문접수)
|
|
|
coreOrderService.createPreOrder(order);
|
|
|
-
|
|
|
+
|
|
|
// 4. 2021.05.10 장바구니정보 주문번호 업데이트
|
|
|
orderService.insertCartHstOrdNo(order);
|
|
|
|
|
|
Payment payment = orderService.setPgDataInfo(order);
|
|
|
+
|
|
|
+ // 2021.05.20 카카오페이, 네이버페이 결제 필요 정보 세션 등록
|
|
|
+ if(TscConstants.PgGb.KAKAO.value().equals(payment.getPgGb()) || TscConstants.PgGb.NAVER.value().equals(payment.getPgGb())) {
|
|
|
+ TsfSession.setAttribute("ordNo", String.valueOf(order.getOrdNo()));
|
|
|
+ TsfSession.setAttribute("tid", payment.getPgTid());
|
|
|
+ }
|
|
|
|
|
|
// 2021.05.10 추가
|
|
|
payment.setPayUrl("/create/preOrder");
|
|
|
@@ -817,6 +832,137 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
return mav;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 카카오페이 모바일 결제 PG 요청 완료
|
|
|
+ *
|
|
|
+ * @param Payment
|
|
|
+ * @return ModelAndView
|
|
|
+ * @author card007
|
|
|
+ * @since 2021. 05. 20
|
|
|
+ */
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping(value = "/kakao/pay/result/response")
|
|
|
+ public ModelAndView kakaoPayResultResponse(Payment payment) {
|
|
|
+ ModelAndView mav = new ModelAndView();
|
|
|
+
|
|
|
+ Integer custNo = TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0;
|
|
|
+ String ordNo = TsfSession.getAttribute("ordNo");
|
|
|
+ String tid = TsfSession.getAttribute("tid");
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(ordNo) || StringUtils.isBlank(tid)) {
|
|
|
+ throw new IllegalArgumentException("결제가 실패하였습니다.");
|
|
|
+ }
|
|
|
+
|
|
|
+ payment.setPgTid(tid);
|
|
|
+ payment.setPartnerOrderId(ordNo);
|
|
|
+ payment.setPartnerUserId(String.valueOf(custNo));
|
|
|
+ payment.setPgGb(TscConstants.PgGb.KAKAO.value());
|
|
|
+ payment.setRegNo(custNo);
|
|
|
+ payment.setUpdNo(custNo);
|
|
|
+
|
|
|
+ // 2. 결재정보등록(TB_PAYMENT)
|
|
|
+
|
|
|
+ Payment result = orderService.kakaoPayResult(payment);
|
|
|
+ // Payment result = coreKakaoPayService.approveKakaoPayment(payment);
|
|
|
+
|
|
|
+ // 3. 주문정보 업데이트
|
|
|
+ Order order = new Order();
|
|
|
+ order.setOrdNo(Integer.parseInt(ordNo));
|
|
|
+ order.setCustNo(custNo);
|
|
|
+ order.setSellGb("10");
|
|
|
+ order.setPgGb(TscConstants.PgGb.KAKAO.value());
|
|
|
+ order.setPayMeans(result.getPayMeans());
|
|
|
+
|
|
|
+ coreOrderService.updateOrderInfo(order);
|
|
|
+
|
|
|
+ // 4. 2021.05.10 장바구니정보 삭제
|
|
|
+ boolean cartDelTemp = true;
|
|
|
+ if (TsfSession.isLogin()) {
|
|
|
+ if ("jsh77b".equals(TsfSession.getInfo().getCustId()) || "xodud1202".equals(TsfSession.getInfo().getCustId()) || "card007".equals(TsfSession.getInfo().getCustId())) {
|
|
|
+ cartDelTemp = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (cartDelTemp) {
|
|
|
+ orderService.deleteCartOrdNo(order);
|
|
|
+ }
|
|
|
+
|
|
|
+ // TODO 5. 2021.05.10 보증보험 API 연동
|
|
|
+ orderService.updateInsurance(order);
|
|
|
+
|
|
|
+ // 2021.03.16 주문완료화면이동처리
|
|
|
+ mav.setViewName("redirect:/order/complete?ordNo=" + order.getOrdNo());
|
|
|
+
|
|
|
+ // 2021.05.20 카카오페이, 네이버페이 결제 필요 정보 세션 삭제
|
|
|
+ TsfSession.removeAtrribute("ordNo");
|
|
|
+ TsfSession.removeAtrribute("tid");
|
|
|
+
|
|
|
+ return mav;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 네이버페이 모바일 결제 PG 요청 완료
|
|
|
+ *
|
|
|
+ * @param Payment
|
|
|
+ * @return ModelAndView
|
|
|
+ * @author card007
|
|
|
+ * @since 2021. 05. 20
|
|
|
+ */
|
|
|
+ @ResponseBody
|
|
|
+ @RequestMapping(value = "/naver/pay/result/response")
|
|
|
+ public ModelAndView naverPayResultResponse(Payment param) {
|
|
|
+ ModelAndView mav = new ModelAndView();
|
|
|
+
|
|
|
+ Integer custNo = TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0;
|
|
|
+ String ordNo = TsfSession.getAttribute("ordNo");
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(ordNo)) {
|
|
|
+ throw new IllegalArgumentException("결제가 실패하였습니다.");
|
|
|
+ }
|
|
|
+
|
|
|
+ param.setPgTid(param.getPaymentId());
|
|
|
+ param.setRegNo(custNo);
|
|
|
+ param.setUpdNo(custNo);
|
|
|
+
|
|
|
+ // 2. 결재정보등록(TB_PAYMENT)
|
|
|
+ Payment result = orderService.naverPayResult(param);
|
|
|
+ // Payment result = coreNaverPayService.approveNaverPayment(param);
|
|
|
+
|
|
|
+ // 3. 주문정보 업데이트
|
|
|
+ Order order = new Order();
|
|
|
+ order.setOrdNo(Integer.parseInt(ordNo));
|
|
|
+ order.setCustNo(custNo);
|
|
|
+ order.setSellGb("10");
|
|
|
+ order.setPgGb(TscConstants.PgGb.NAVER.value());
|
|
|
+ order.setPayMeans(result.getPayMeans());
|
|
|
+
|
|
|
+ coreOrderService.updateOrderInfo(order);
|
|
|
+
|
|
|
+ // 4. 2021.05.10 장바구니정보 삭제
|
|
|
+ boolean cartDelTemp = true;
|
|
|
+ if (TsfSession.isLogin()) {
|
|
|
+ if ("jsh77b".equals(TsfSession.getInfo().getCustId()) || "xodud1202".equals(TsfSession.getInfo().getCustId()) || "card007".equals(TsfSession.getInfo().getCustId())) {
|
|
|
+ cartDelTemp = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (cartDelTemp) {
|
|
|
+ orderService.deleteCartOrdNo(order);
|
|
|
+ }
|
|
|
+
|
|
|
+ // TODO 5. 2021.05.10 보증보험 API 연동
|
|
|
+ orderService.updateInsurance(order);
|
|
|
+
|
|
|
+ // 2021.03.16 주문완료화면이동처리
|
|
|
+ mav.setViewName("redirect:/order/complete?ordNo=" + order.getOrdNo());
|
|
|
+
|
|
|
+ // 2021.05.20 카카오페이, 네이버페이 결제 필요 정보 세션 삭제
|
|
|
+ TsfSession.removeAtrribute("ordNo");
|
|
|
+ TsfSession.removeAtrribute("tid");
|
|
|
+
|
|
|
+ return mav;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 주문완료페이지
|
|
|
*
|
|
|
@@ -1115,7 +1261,8 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
public ModelAndView kakaoPaymentRequest(@RequestParam(value = "pg_token", required = false) String pgToken) {
|
|
|
ModelAndView mav = new ModelAndView();
|
|
|
mav.addObject("pgToken", pgToken);
|
|
|
- mav.setViewName(super.getDeviceViewName("/pg/KakaoPaymentRequest"));
|
|
|
+ mav.addObject("ordNo", TsfSession.getAttribute("ordNo"));
|
|
|
+ mav.setViewName(super.getDeviceViewName("pg/KakaoPaymentRequest"));
|
|
|
return mav;
|
|
|
}
|
|
|
|
|
|
@@ -1132,7 +1279,8 @@ public class TsfOrderController extends TsfBaseController {
|
|
|
public ModelAndView naverPaymentRequest(@RequestParam(value = "paymentId", required = false) String paymentId) {
|
|
|
ModelAndView mav = new ModelAndView();
|
|
|
mav.addObject("paymentId", paymentId);
|
|
|
- mav.setViewName(super.getDeviceViewName("/pg/NaverPaymentRequest"));
|
|
|
+ mav.addObject("ordNo", TsfSession.getAttribute("ordNo"));
|
|
|
+ mav.setViewName(super.getDeviceViewName("pg/NaverPaymentRequest"));
|
|
|
return mav;
|
|
|
}
|
|
|
|