Spring boot kim's Shop/결제 시스템

Springboot 결제시스템!(1) with 아임포트 결제 성공시

디비드킴 2021. 8. 22. 16:30

이제 예약에 들어가기 전에
결제시스템을 연동해보자

이전 프로젝트에
처음으로 연동했었다
https://cordingmonster.tistory.com/76?category=1032073

 

Springboot 결제 시스템 만들기! (1) 토큰 발급받기 with 아임포트, HttpHeaders ,RestTemplate,Response

진짜 죽는 줄 알았다 결제만 몇 번 한 건지 모르겠다 오후 2시 부터 했는데 현재 8시이다 일단 결제 시스템을 만든 이유는 사실 예약 변경/수정/삭제는 이제 db에서 delete/update/insert 하는 일만 남았

cordingmonster.tistory.com

이제 더 멋지게 코드를 써보자

시나리오는 같다
결제->결제정보아임포트전송->결제정보 백엔드 전송

프런트 서버 코드는

js

결제가 먼저 이뤄지고

js

insert시 검증이 이뤄진다
자세한 건 결제+예약시스템을 합칠 때
설명해보자

백엔드 서버
검증을 위해 만들어야 한다

시나리오
요청-> 토큰 발급-> 토큰 이용해 거래정보획득-> 거래 검증


service

iamportService.java

토큰을 받아오는 함수이다
자세한 건
https://cordingmonster.tistory.com/76?category=1032073

 

Springboot 결제 시스템 만들기! (1) 토큰 발급받기 with 아임포트, HttpHeaders ,RestTemplate,Response

진짜 죽는 줄 알았다 결제만 몇 번 한 건지 모르겠다 오후 2시 부터 했는데 현재 8시이다 일단 결제 시스템을 만든 이유는 사실 예약 변경/수정/삭제는 이제 db에서 delete/update/insert 하는 일만 남았

cordingmonster.tistory.com

iamportService.java

거래정보를 가져오는 함수이다
자세한 건
https://cordingmonster.tistory.com/77?category=1032073

 

Springboot 결제 시스템  만들기!(2) 결제정보 가져오기 with 아임포트,RestTemplate,HttpHeaders,Json,HttpEntity

이제 토큰을 받아왔으니 토큰을 이용해 결제정보가 맞는지 확인하기 위해 결제정보를 가져와보자! 생각보다 빨리 해냈다 https://api.iamport.kr/ API-아임포트 api.iamport.kr apl를 자세히 보면 payments :

cordingmonster.tistory.com

iamportService.java

가저온 거래정보와
서버가 가진 정보를 비교하는 함수이다
결제가 성공적으로 끝난다면
if(payMentInterFace.getTotalPrice()==amount&&status.equals("paid"))
결제 완료 db에 넣어주자
paidService.insertPayment(payMentInterFace);

dto

paidDto.java

service

paidService.java

테스트

http://localhost:3030/reservationPage
vscode
mysql

완료!

결제시스템과+예약시스템을 합쳐보자
이제 에러 발생시 환불 로직만 넣어주면 된다!

 

++추가

리펙토링 되었습니다

https://cordingmonster.tistory.com/145?category=1041862 

 

Springboot 예약+결제시스템 리펙토링!

1. 아임 포트에서 가상계좌 테스트를 지원한다 2. 부트 페이는 이제 업 성도 된다 3. 구조변경이 불가피 해졌다 abstract클래스 이클래스는 결제 검증이 끝나고 예약 dto에게 전달해줄 변수들을 들고

cordingmonster.tistory.com