Spring boot kim's Shop 56

Spring boot 결제시스템 리팩토링!(2) with 세틀뱅크/카카오페이

일반 결제 취소 = 카드/카카오페이/가상계좌 입금 후 = 돈이 들어온 후 환불만 해주면 됨 시나리오 요청-> 취소가능 여부 검증-> 예약/상품 테이블 선택 아이템 삭제-> 각 아이템별 결제수단 추출-> 같은 아이디 값으로 모으기-> 아이디별 환불 pg사 전송 가상계좌 미입금 부분 취소 = 채번 새로 받은 후 기존 채번취소 요청 요청-> 취소가능 여부 검증-> 예약/상품 테이블 선택 아이템 삭제-> 각 아이템별 결제수단 추출-> 같은 아이디 값으로 모으기-> 새 채번 요청-> 새 계좌/가격 상품/예약/결제 테이블 수정-> 채번 취소 요청 고비는 크게 두 가지였다 1. 각 아이템별 결제수단 추출-> 같은 아이디 값으로 모으기 2. 새 계좌/가격 상품/예약/결제 테이블 수정-> 채번 취소 요청 일단 최선을 다..

Springboot 예약내역 페이지 리팩토링! with left join

이전 원가+예약 내역 join 후 카드/카카오페이/가상계좌 이렇게 나눠져서 또 db를 들렀다가 왔다 현재 left join으로 다 들고 오게 했다 dao 날짜 미지정 검색 @Query(value = "select a.*,b.price,c.*,v.*,k.* from reservation a inner join product b on a.seat=b.product_name left join card c on a.payment_id=c.cmcht_trd_no left join vbank v on a.payment_id=v.vmcht_trd_no left join kakaopay k on a.payment_id=k.ktid where a.email=? order by a.id desc limit ?,?",nat..

Springboot 결제 시스템 리팩토링!(1) 카드/가상계좌 세틀뱅크

바보였다 테스트 신청하자마자 하면 되는 거였는데 3일 전에 알고 부랴부랴 시스템을 개편했다 진짜 힘들었다 변동사항 결제 요청 이전 아임 포트-> 세틀 뱅크 현재 세틀 뱅크 디렉트 연결 예약시스템 이전 총액 받기->가상계좌라면 날짜 받기 현재 필요 정보 한 번에 다 받기 예약+결제 이전 예약 시도-> 결제 후 검증-> db저장 현재 예약 시도-> 결제/상품 임시 테이블 저장-> 결제 검증-> 메인테이블 저장 임시 테이블은 재고에 안 잡히고 결제 영향도 없는 테이블이다 그냥 스프링 스케줄러+배치로 하루에 한 번씩만 비워주면 될 거 같다 테이블 구조도 변경하였다 예약은 예약정보만/결제는 결제정보만 들고 있을 수 있게 했다 결제 테이블도 card/vbank/kakaopay 이렇게 종류별로 나눴다 아 개편하는데 ..

톰캣!https만들기!

세틀 뱅크 가상계좌가 계속 이 상태이다 왜 이런지 모르겠다 http여서 그런가 https를 만드는 법을 찾아봤다 한 4시간 이것만 했다 진짜.. 결론은 톰캣 버전 차이였다.. 진작 공식문서를 봤어야 했었다.. cmd 관리자 실행 후 "%JAVA_HOME%\bin\keytool" -genkey -alias tomcat -keyalg RSA 그러면 C:\Users\Administrator에 파일이 생긴다 그리고 톰캣 설정 다른 번전과 많이 달랐다 그래서 4시간 동안 헤맨 거 같다.. 결과 https://localhost:8443/index.html 와우 프런트 서버가 https가 되었다 백엔드도 있는 거 같던데 오늘 시간 버린 거 https인증서까지 확실히 해야겠다 문제는 세틀뱅크 가상계좌는 아직도 저모양이..

1차 리팩토링 목록

part1회원/part2구매가 얼추 끝나서 part3인 게시판에 들어가기전에 리팩토링을 할것이다 1.백엔드에 존재하는 controller를 없앨것이다 2.현재 쓸모없는 enum을 제거할것이다 3.카카오api리팩포링 -너무 구현에 집중해 다 때려박아놨다 4.팝업창 구현 5.프런트 자바스크립트 (선택 ) -프런트는 뭐.. 통신만 할 수 있게 해놔서 기가막히다 20210913 세틀뱅크 테스트하는 방법을 찾았다 카드연동은 성공했고 가상계좌만 연동하면된다 연동후에 리팩토링 하자 ㅋㅋ

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 결제시스템 (7) 카카오페이 연동

가상계좌를 다룰 방법을 찾았다 세틀 뱅크 테스트는 매번 취소는 불가능하지만 입금 전 수정/카드결제가 가능했다 그래서 카카오페이를 직접 연동하기로 하고 세틀 뱅크를 pg사로 붙였다 네이버 페이는 사업자 등록증이 필요하다 테스트 계정 범위 1. 세틀 뱅크로 입금 전 수정 가능 2. 세틀 뱅크 일반 결제 가능 3. 카카오페이 불가능 -따로 직접 붙임 4. 입금 후 부분 취소 불가능 -db만 수정해주고 기분만 내야겠다 5. 일반 결제는 동일하게 부분 취소/환불 가능 카카오페이를 붙이면서 현재 예약시스템도 뜯어고쳤다 이전에는 예약/일반상품을 따로 구별하려고 했다 하지만 이제는 물건을 구매했을 때 예약상품이든 일반상품이든 요청을 하면 결제 검증을 하고 예약/상품에 따라 crud가 일어난다 우선 카카오페이를 붙여보자..

Springboot 게시판만들기!(1) 글쓰기 summernote 연동하기

이제 에디터를 연동할 건데 ckeditor5/summernote 둘 다 성공했지만 결국 summernote를 선택했다 이유는 ckeditor5 이미지 업로드 시 쿠키를 던져야 하는데 그걸 아직 하는 법을 모른다 그거만 알면 ckeditor5를 사용할 거 같다 summernote 부트스트랩/j쿼리가 있어야 사용이 가능하다 프런트 서버 testarea를 만들어준다 js summernote연동 $('#summernote').summernote 인터넷에서 복붙 했다 많이 있다 이미지 업로드 function uploadSummernoteImageFile(file, editor) 결과 부트스트랩이 붙으니까 급 글씨체가 이뻐졌다 ㅋㅋ 여담으로 ckeditor5를 쓰고 싶다면 헤더에 ckeditor5 cdn을 하고(공..

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

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

Springboot 재고정리 시스템!(1) 가상계좌 재고정리 spring batch+ spring Scheduled

5분에 한 번씩 자동 재고 정리가 될 수 있도록 만들어 보자 spring Scheduled/batch를 사용하려면 의존성 주입이 필요하다 그리고 어노테이션을 붙혀줘야한다 여기에 어노테이션 붙이는 건 처음이다 그리고 batch를 위한 세팅을 해야 한다 여기를 참고하자 https://acet.pe.kr/799 springboot 2.x 이상 springbatch table문제 해결 방법! id 'org.springframework.boot' version '2.3.2.RELEASE'를 사용 중! 그리고 springbatch개발을 하고 있다! 그런데? 스프링배치를 수행하면서 아래의 오류 발생~~! bad SQL grammar [SELECT JOB_INSTANCE_ID, JOB_.. acet.pe.kr appl..