이제 검증/예외처리를 해보자
검증은 일반 결제랑 비슷하다
토큰 받고->정보 받고->검증
iamportService
오우 쒯 너무 길다
구매자 정보 확인
confrimBuyerinfor(userDto, buyInfor, totalPrice)
가상계좌라면
else if(status.equals("ready"))
vbank테이블에 들어갈 클래스
vbankPayment vbankPayment=new vbankPayment()
예외 터질 시 매번 취소를 위해 세션에 정보 저장
httpSession.setAttribute("merchantUid",buyInfor.get("merchant_uid"))외 6줄
일반 결제랑 크게 다를 게 없다
다만 채번 취소가 좀 다르다
채번 취소
errorRestController
예약 시도 중 예외가 터지면 여기로 오게 된다
가상계좌라면
httpSession.getAttribute("kind").equals("vbank")
세션-> json
JSONObject jsonObject=new JSONObject();
iamportService
delete 요청으로 해야 취소된다
restTemplate.exchange("https://api.iamport.kr/vbanks/"+paymentid,HttpMethod.DELETE,entity,JSONObject.class);
테스트
예외 테스트
고의로 예외를 마지막에 넣어두고
before
변화가 없다
"reason":"발급된 가상계좌를 말소합니다."라는 메시지가 있다
정상적 예약 시도
예약
| 62 | 2021-09-05 12:34:36 | 2021-09-05 17:00:00 | kim@kim.com | 김준영 | imp_850827016164 | 2021-09-05 00:00:00 | a-4 | ready | 17 | 기업은행 |
| 63 | 2021-09-05 12:34:36 | 2021-09-05 18:00:00 | kim@kim.com | 김준영 | imp_850827016164 | 2021-09-05 00:00:00 | a-4 | ready | 18 | 기업은행 |
| 64 | 2021-09-05 12:34:36 | 2021-09-05 20:00:00 | kim@kim.com | 김준영 | imp_850827016164 | 2021-09-05 00:00:00 | a-4 | ready | 20 | 기업은행
vbank
| 144 | 기업은행 | 2021-09-05 12:34:36 | kim@kim.com | 2021-09-05 16:00:00 | imp_850827016164 | 6000 | ready | 07502310897088 | 김준영 | reservation | 003 | (주)케이지 이니시 |
모두 잘 들어왔고 입금 시간도 아주 잘 되어있다
(2021-09-05 16:00:00)
이제
두 가지가 있다
1.예약 내역 페이지에서 결제정보 보여주기!
2.입금확인처리
3.가상계좌 미입금 시 재고정리
(spring 스케줄러+spring 배치로 구현했다)
+가상계좌로 결제를 했다면
메시지가 출력되게 하자!
입금확인처리로 가보자!
'Spring boot kim's Shop > 결제 시스템' 카테고리의 다른 글
Springboot 결제시스템!(6) 아임포트 환불!(미완성) (0) | 2021.09.07 |
---|---|
Springboot 결제시스템!(5) 가상계좌입금확인 +예약시스템 with아임포트 (0) | 2021.09.05 |
Springboot 결제시스템!(3) 가상계좌 날짜 발급 with아임포트 (0) | 2021.09.05 |
Springboot 결제시스템!(2) 아임포트 번외편 포트포워딩+웹훅! (0) | 2021.08.22 |
Springboot 결제시스템!(1) with 아임포트 결제 성공시 (0) | 2021.08.22 |