1. 아임 포트에서 가상계좌 테스트를 지원한다
2. 부트 페이는 이제 없어도 된다
3. 구조변경이 불가피 해졌다
abstract클래스
이클래스는
결제 검증이 끝나고 예약 dto에게 전달해줄
변수들을 들고 있다
nomalPaymenrtClazz
추상 클래스를 상속받아
일반 결제 결제 검증 후-> paidproduct테이블에 insert 할 때
사용된다
현재는 paymethod하나이지만 나중에 더 많아질 때를 대비해 만들어 놓았다
vbankpaymentclazz
가상계좌 요청 시 사용되는 클래스이다
역시 추상 클래스의 상속 후 사용한다
vbank테이블에 insert 할 때 사용된다
reservationService
흐름도 바뀌었다
결제 검증 우선 후
paymentabstract paymentabstract=iamportService.confrimPayment(reservationInsertDto.getPaymentId(), totalPrice,kind);
reservationDto에게 부여
reservationInsertDto.setStatus(paymentabstract.getStatus());
reservationInsertDto.setUsedKind(paymentabstract.getUsedKind());
reservationInsertDto.setEmail(paymentabstract.getEmail());
reservationInsertDto.setName(paymentabstract.getName());
예약조건 검사
confrimInsert(reservationInsertDto);
예약 시도
insertReservation(reservationInsertDto);
confrimInsert
for문 속도 개선
for(int i:times)
. size() 보다 이렇게 이방식을 뭐라고 하던데
어쨌든 이방식이 더 빠르다고 한다
. size()가 매번 호출되지 않으니
불필요한 try/catch제거
놀랍게도 여기서 예외를 발생시키면
confrimContents에 가서 예외가 잡힌다
즉 try/catch는 젤의 함수에 한 번만 감아놔도 된다
가상계좌 발급 시 기간이 맞는지 확인
if(reservationInsertDto.getStatus().equals("ready"))
오늘 날짜와 비교해서 가상계좌 예약요청이
3일 이하 라면(내 가정한 기한이고 사이트마다 다르게 하면 된다)
당일인 경우 만 검증해주자
ex2021-09-02 12:00:00이라면
가상계좌는 2021-09-02 11:00:00시까지 입금되게 기한을 해줘야 한다
근데 11:30:00이나 한 시간 텀이 안될 때 가상계좌 예약을 시도한다면 실패해주자
priceService
삼품 선택시 선택한상품*개수
그리고 재고검사를 행해주는 서비스이다
iamportService
인터페이스를 변수로 받지 않는다
이전의 paymentService의 interface 만들어주던 함수도 삭제되었다
confrimBuy
일반 결제만 설명하겠다
가상계좌 파트는 아직 글을 안 썼다
결제 총량이 맞다면
if(totalPrice==amount)
로그인한 정보를 꺼내서
userDto userDto=userService.sendUserDto()
테이블에 저장할 수 있게던저 주자
paymentService.insertPayment(nomalPayment, userDto, totalPrice);
그리고 예약을 완료할 수 있게
paymentabstract=nomalPayment;
추상 클래스에게 부여해준다
이제 가상계좌는 어떻게 움직이는지 가보자!
'Spring boot kim's Shop > 리팩토링' 카테고리의 다른 글
1차 리팩토링 목록 (0) | 2021.09.12 |
---|---|
Springboot 결제시스템 (7) 카카오페이 연동 (0) | 2021.09.08 |
Springboot jwt인증 리펙토링 (0) | 2021.09.02 |
Springboot->html+자바스크립트로! (0) | 2021.08.31 |
Springboot 인증 시스템 리팩토링!(2) with interface (0) | 2021.08.14 |