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

Springboot 결제시스템!(8) 환불하기 카카오페이/아임포트

환불을 해보자 restcontroller 예약상품이든 /일반상품이든 여기로 요청한다 paymentService 어떤 종류 안지 받는다 String kind=aboutPayEnums.valueOf(tryCanclePayDto.getKind()).getString(); 다중 선택이 가능하므로 list에 넣어준다 List idArray=tryCanclePayDto.getId(); 예약상품이라면 예약 서비스로 간다 if(kind.equals(aboutPayEnums.reservation.getString())) (일반상 품 아직 미구현) tryCanclePayDto reservationService 예약 내용+가격을 조인해서 가져온다 reservationAndPriceInters.add(reservationDa..

Springboot 결제시스템!(6) 아임포트 환불!(미완성)

경우의 수가 있었다 1. 결제된 상품 환불/부분 환불 2. 가상계좌로 결제된 상품 환불/부분 환불 3. 미입금 계좌 환불/부분 환불 테스트 계정으로 할 수 있는 건 1번이었다 2/3번은 세틀 뱅크로 하면 가능 하지만 현재 isp카드결제에서 오류가 나서(j999) 문의를 넣어놓은 상태이다 토이 프로젝트여서 더는 시간을 끌 수 가없다 다음 토이 프로젝트에서 집중적으로 다뤄봐야 할 거 같다 그래서 문의를 했다 디렉트로 pg사로 테스트할 수없는지 kg이니시스는 사업자 등록이 꼭 필요하다고 해서 불가능했다 설명도 딱히 할 게 없다 코드도 길어지기만 했고 미완성인 상태이다 재밌게 만들고 있었는데 김이 확 빠졌다 대충 하고.. 게시판으로 가자 설명도 딱히 할 게 없어서 사진 한 장으로 대체한다 optional은 까먹..

Springboot 결제시스템!(5) 가상계좌입금확인 +예약시스템 with아임포트

자 이제 테스트 페이지에서 입금 확인을 만들어주자 시나리오 입금확인->어떤종류인지 확인(예약인지/상품인지)->DB수정 웹 훅을 해야 하기 때문에 포트 포워딩을 꼭 해야 한다 restcontroller 아임 포트 여기로 던져준다 cancel/ready/paid든 paymentService 머 스타치 id가 vbank로 시작하는지 검사하자 if(status.equals("paid")&&merchantUid.startsWith("vbank")) 맞다면 impid를 이용해 찾는다 vBankDto vBankDto=vbankDao.findByPaymentId(paymentId); 상품/예약에 따라 테이블에 접근해 상태를 수정해준다 if(vBankDto.getKind().equals("reservation")) 결제..

Springboot 결제시스템!(4) 가상계좌 +예약시스템 with아임포트

이제 검증/예외처리를 해보자 검증은 일반 결제랑 비슷하다 토큰 받고->정보 받고->검증 iamportService 오우 쒯 너무 길다 구매자 정보 확인 confrimBuyerinfor(userDto, buyInfor, totalPrice) 가상계좌라면 else if(status.equals("ready")) vbank테이블에 들어갈 클래스 vbankPayment vbankPayment=new vbankPayment() 예외 터질 시 매번 취소를 위해 세션에 정보 저장 httpSession.setAttribute("merchantUid",buyInfor.get("merchant_uid"))외 6줄 일반 결제랑 크게 다를 게 없다 다만 채번 취소가 좀 다르다 채번 취소 errorRestController 예..

Springboot 결제시스템!(3) 가상계좌 날짜 발급 with아임포트

놀랍게도 가상계좌 테스트도 가능한 아임 포트였다 진짜 카카오/네이버/아임 포트 진짜 감사합니다 시나리오 일반 결제 일반 결제 선택-> 서버에서 가격 전송-> 완료-> 검증-> 입금완료-> 예약 시도 가상결제 가상계좌 선택-> 서버에서 가격 전송-> 서버에서 입금일 생성-> 완료-> 검증-> 입금완료-> 예약 시도(임시) 가상계좌 입금 확인은 웹 훅을 이용해 야하기 때문에 포트 포워딩을 해야 한다 https://cordingmonster.tistory.com/140?category=1043621 Springboot 결제시스템!(2) 아임포트 번외편 포트포워딩+웹훅! 검증의 또 하나의 방법이 있는데 이건 이제 주로 가상계좌입금 확인용으로 쓰는 거 같다 아임 포트 관리자 페이지에 가면 웹 훅 설정이 있다 그래..

Springboot 결제시스템!(2) 아임포트 번외편 포트포워딩+웹훅!

검증의 또 하나의 방법이 있는데 이건 이제 주로 가상계좌입금 확인용으로 쓰는 거 같다 아임 포트 관리자 페이지에 가면 웹 훅 설정이 있다 그래서 정보를 받을 url을 입력하면 되는데 그전에 포트 포워딩을 해야 한다 localhost로는 받을 수없기 때문이다 (이걸로 한 시간 반 동안 고민했다) iptime에서 포트 포워딩 설정을 해주고 https://www.youtube.com/watch?v=cI-_sx2wTkQ 이영상을 보면 된다 포트만 자기 꺼에 맞게 해 주고 ddns를 해주자 그리고 아임 포트로 가서 http://kim80800.iptime.org:8080/auth/payment url을 적어주고 백엔드 서버로 가자! 백엔드 서버 restcontroller 이렇게 테스트를 진행해보자 아임 포트에서 ..

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

이제 예약에 들어가기 전에 결제시스템을 연동해보자 이전 프로젝트에 처음으로 연동했었다 https://cordingmonster.tistory.com/76?category=1032073 Springboot 결제 시스템 만들기! (1) 토큰 발급받기 with 아임포트, HttpHeaders ,RestTemplate,Response 진짜 죽는 줄 알았다 결제만 몇 번 한 건지 모르겠다 오후 2시 부터 했는데 현재 8시이다 일단 결제 시스템을 만든 이유는 사실 예약 변경/수정/삭제는 이제 db에서 delete/update/insert 하는 일만 남았 cordingmonster.tistory.com 이제 더 멋지게 코드를 써보자 시나리오는 같다 결제->결제정보아임포트전송->결제정보 백엔드 전송 프런트 서버 코드는..