환불을 해보자
restcontroller
예약상품이든 /일반상품이든 여기로 요청한다
paymentService
어떤 종류 안지 받는다
String kind=aboutPayEnums.valueOf(tryCanclePayDto.getKind()).getString();
다중 선택이 가능하므로 list에 넣어준다
List<Integer> idArray=tryCanclePayDto.getId();
예약상품이라면 예약 서비스로 간다
if(kind.equals(aboutPayEnums.reservation.getString()))
(일반상 품 아직 미구현)
tryCanclePayDto
reservationService
예약 내용+가격을 조인해서 가져온다
reservationAndPriceInters.add(reservationDao.findByPaymentidJoinPriceNative(i).orElseThrow(()->new RuntimeException("품목 조회 실패")));
예약 취소가 가능한지 검증한다
confrimCancle(r.getDate_and_time(), r.getEmail());
예약 삭제
reservationDao.deleteById(r.getId());
입금 전/입금완료인지 분류
if(status.equals(aboutPayEnums.statusReady.getString()))
입금 전이라면 가격 수정을 위해
(입금 후라면 뺄 가격을 줘야 한다)
int newPrice=paymentService.updateVbank(paymentid,price);
요청
paymentService.requestUpdateVbankBeforePaid(paymentid, newPrice,vBankDto.getEndDateUnixTime());
입금 후라면 db수정
paymentService.updatePaidProductForCancle(paymentid,price);
카카오페이인지 확인 후 카페 요청
paymentService.requestCancleToKakaoPay(paidDto.getPaymentId(),price);
아임 포트라면 가상계좌인지/일반 결제인지 확인
if(paidDto.getPayMethod().equals("vbank"))
상황에 따라 맞는 파라미터 전달
현재 vbank/paid인지 판별하고
나눠져서 db에 한 번씩 더 가는데
join문에 if를 할 수 있는 거 같던데
그 방법을 쓰면 더 좋을 거 같다
근데 봤는데 너무 어려워서 일단 이렇게 했다
confrimCancle
updatePaidProduct/updateVbank
상당히 흡사하다
즉 인터페이스로 묶을 수 있을 거 같다
이제 카카오/아임 포트요청 하는 쪽으로 가보자
카카오페이
requestCancleToKakaoPay
파라미터를 만들고 카카오에게 요청한다
cancleKakaopay
requestToKakaoPay
아임포트 입금 전 금액 수정
requestUpdateVbankBeforePaid
requestUpdateVbank
아임 포트 입금 후 부분 환불/환불
canclePay
cancleBuy
아임 포트는 테스트 모드 제약이 있어서
통신 부분을 하나로 못 묶었다
테스트
카카오페이 후 환불 시도
현재시간 15:06분 그래서 현재 282번은 disabled 가되어있다
프런트에서 disabled 풀고 요청해보겠다
좋았어!
정상적 시도
좋았어!
가상계좌 미입금 환불 테스트
음 아쉬운 건 같은 요청인데
각각 요청하는 시스템이 어서 아쉽긴 한데
어찌어찌 테스 계정으로 최대한 만들었다!
이제 게시판으로 가자!
(그전에 이전 말도 안 되는 enum들/기타 코드들을 정리할 것이다)
학원에서 스프링까지 오기 전에
완성하고 싶다
'Spring boot kim's Shop > 결제 시스템' 카테고리의 다른 글
Springboot 결제시스템!(6) 아임포트 환불!(미완성) (0) | 2021.09.07 |
---|---|
Springboot 결제시스템!(5) 가상계좌입금확인 +예약시스템 with아임포트 (0) | 2021.09.05 |
Springboot 결제시스템!(4) 가상계좌 +예약시스템 with아임포트 (0) | 2021.09.05 |
Springboot 결제시스템!(3) 가상계좌 날짜 발급 with아임포트 (0) | 2021.09.05 |
Springboot 결제시스템!(2) 아임포트 번외편 포트포워딩+웹훅! (0) | 2021.08.22 |