스프링부트 112

Springboot 네이버로그인!(2) 토큰받기!

이제 토큰을 받을 건데 이전에 받은 code/state값을 이용해야 한다 개발자 센터를 가보자 https://developers.naver.com/docs/login/api/api.md 네이버 아이디로 로그인 API 명세 - LOGIN '네이버 아이디로 로그인 API는 네이버 로그인 인증 요청 API, 접근 토큰 발급/갱신/삭제 요청API로 구성되어 있습니다. 네이버 로그인 인증 요청 API는 여러분의 웹 또는 앱에 네이버 로그인 화면을 developers.naver.com https://nid.naver.com/oauth2.0/token 으로 url요청으로 하면 된다 보낼 값은 grant_type=authorization_code 이건 발급 시 고정이다 client_id=내 네이버 api아이디 clie..

Springboot 네이버로그인!(1) code받기 state만들기

소스를 정리하기 전에 좀 아쉬움이 남았다 아임 포트로 api를 성공하고 나니까 너무 짜릿해서 한 번 더 해보고 싶었는데 무얼 할까 하다가 자주 사용할 거 같은 네이버 로그인을 선택했다! 네이버는 토큰을 받기 전에 https://nid.naver.com/oauth2.0/authorize 링크로 가서 code/state를 얻어와야 했다 당황스러웠지만 성공했다! url통신을 해야 한다 조건은 뒤에 파라미터로 api아이디/callbackurl/state를 만들어서 줘야 한다 여길 참고해서 만들어보자 https://developers.naver.com/docs/login/api/api.md 네이버 아이디로 로그인 API 명세 - LOGIN '네이버 아이디로 로그인 API는 네이버 로그인 인증 요청 API, 접근 ..

Springboot 문자인증/전송!(2) with coolsms And HttpSession

이메일 인증과 딱히 다르진 않다 핸드폰으로 인증번호를 전송하자! html js service from이 보내는 번호인데 실제 번호여서 지워놨다 가짜 번호로 테스트를 해봐야겠다 없는 번호도 가는지 안 간다 테스트 해봤는데 없는 번호로 하면 안간다 restcontroller f(principaldetail.getUsername()!=null) 로그인 여부 검사를 하고 (아마 비로그인 시 알아서 예외를 일으켜주는 걸로 아는데 혹시 몰라서 걸었다) String smsRandNum=utilservice.GetRandomNum(6); 6자리 인증번호를 만들고 httpSession.setAttribute("phoneNum", phone.get("phone")); httpSession.setAttribute("smsR..

Springboot 회원탈퇴!(1)

예약/결제/게시글/댓글/인증 구현이 얼추 끝났다 이제 회원 탈퇴를 만들 건데 이전의 함수들을 이용하면 된다 답글 서비스는 아직 구현하지 않아서 나중에 답글 서비스까지 구현하면 한 번 더 와서 추가해 줘야 할 거 같다 일단 프런트 마이페이지에 링크를 추가해주고 controller html js 결과 진짜 기능만 되는 허접한 페이지가 완성되었다 서버 service 로그인을 해야 가능한 기능인데 혹시 몰라서 if(confrimEmail(email)){ 존재하는 아이디인지 검사를 해주고 if(bCryptPasswordEncoder.matches(userdto.getPwd(),uservo.getPwd())){ 비밀번호가 일치 한지 검사해주고 if(reservationservice.getReservationByEm..

Springboot 결제+예약(2) 부분취소/환불 하기 with 아임포트

예약 취소는 db에 있는 imp_uid를 사용하면 된다 예약을 했다면 imp_uid도 같이 들어가 있다 이제 삭제 로직을 만들건대 개별 취소가 가능해야 하기 때문에 가격이 들어올 수 있게 코드를 바꾸자 restcontroller reservationdto.setPrice(seatInforVo.getPrice()); dto에 넣어주고 vo @Column(name = "price",nullable = false) private int price; this.price=reservationdto.getPrice(); 추가해주면 테이블이 바뀌고 save 할 때 자동으로 들어간다 service는 바꿀 필요가 없다 이제 환불을 구현해보자 service 검증을 해준다 존재하는 예약인지 올바른 예약인지 그리고 맞다면 객..

Springboot 결제+예약!(1) 당일 예약 시스템 with 아임포트 ,j쿼리,HttpSession

이전 예약 시스템은 결제 시스템이 없는 시스템이었다 예약하는데 꼭 결제 시스템을 넣어 보고 싶어서 이틀 동안 고생한 결과 아임 포트를 이용해서 성공했다 다만 순수 자바스크립트가 아닌 j쿼리의 힘을 어느 정도 빌려서 만들었다 시작해보자! 예약결제 자체는 아임 포트에서 자체적으로 제공해줘서 별로 어렵지 않다 하지만 검증/취소가 서버 쪽에서 이뤄져야 해서 아임 포트 api를 열심히 뒤져서 만들었다 html 그다음 좌석에 맞는 예약 가능 시간을 가져온다 j쿼리를 사용해서 서버에서 예약 가능 시간을 가져와서 개수만큼 체크 박스를 만들어준다 $('#requesthourdiv').append(""+alreadytime[i]+"시~"+ii+"시"); 정말 편리하다 j 쿼리 서버소스는 이전에 여기서 구현했다 https:..

Springboot 결제시스템 만들기!(3) 결제취소 with 아임포트,HttpEntity,RestTemplate,HttpHeaders,Json

토큰을 발급받고 나니까 얼추 적응을 했는지 또 금방 환불을 구현했다 어떻게 api와 통신하는지 감을 좀 잡은 거 같다 service 헤더에는 토큰을 넣어주고 바디에는 결제 id를 넣어준다 그다음 주소로 쏴주고 dto를 만들어서 받아준다! dto 진짜 편리하다 dto로 받는 기능 결과 너무 기쁘다 ㅠㅠㅠ 외부 api 사용하기! 포기하고 싶었던 구간을 넘었다! 첫날 진짜 몇 시간 동안 토큰 받는 거에 매달렸는데 그다음 감을 잡았는지 일사천리로 했다 ㅠㅠㅠ 토큰/결제정보 받기/결제 취소, 환불 모두 터득했다 ㅠㅠㅠ 처음에 어 뭐야 겁나 쉽네 결제시스템 했는데... 검증을 서버에서 해야 한다니ㅋㅋㅋ 하 그래도 아임 포트가 있어서 이 정도지 직접 구현했다가는 어후... 이제 이걸 토대로 예약/변경/취소를 만들자!

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

이제 토큰을 받아왔으니 토큰을 이용해 결제정보가 맞는지 확인하기 위해 결제정보를 가져와보자! 생각보다 빨리 해냈다 https://api.iamport.kr/ API-아임포트 api.iamport.kr apl를 자세히 보면 payments : 결제내역 조회 및 결제 취소 /payments/{imp_uid}를 사용해서 가져왔다 dto service 처음에 nobody오류가 나길래 body로 토큰을 보냈는데 또 같은 오류가 났다 그래서 보통 이런 건 헤더로 보내던데 해서 그냥 헤더로 보내봤다 결과 구매정보를 받았다 근데 분명 api에 get이라고 되어있었는데 postForObject를 사용해서 성공했다.. 이제 가격을 비교해서 좌석 가격과 일치하면 true를 리턴하고 아니라면 결제 취소를 하자!

Springboot 예약내역 페이지 만들기!(2) 날짜를 비교하자 with Timestamp and LocalDateTime

이제 시간이 지난 예약은 변경/취소할 수 없게 만들어보자! 날짜를 비교해야하는데 service LocalDateTime을 선택한 이유가 일단 timestamp에서 변환 하기 간단했고 isAfter/isBefore처럼 아주 유용한 기능을 제공해 주고 있었다 그래서 현재시간이라 비교해서 판별하게 했다! service 여기서 이제 true를 주는것만 배열에 넣어서 프런트에게 던져 주면 되고 false인 경우reservationdao.deleteById(reservationvo.getId()) 사용해 예약 테이블에서 빼준다 개인적으로 isAfter/isBefore가 아직 했갈린다 ㅋㅋㅋ 그래서 테스트를 몇 번 해봐야 한다! 컨트롤러는 달라진 게 없으니! 스킵 결과 현재 3시 58분 16시 거를 무지하게 예약했다..

Springboot 당일 예약 시스템 만들기!(3) with json and Transactional

+추가 20210821 당일이 아닌 더 업그레이드 된 예약시스템은 여기있습니다 https://cordingmonster.tistory.com/138 Springboot 예약시스템 만들기!(1) 연/월/일/요일 뿌리기! 이전에 kimscafe에서는 '당일' 예약만 가능한 시스템이었다 이번엔 언제든 가능한 예약시스템을 사용해보자! 시나리오 자리 선택->년/월/날짜 표시-> 날짜 선택-> 시간표시-> 예약 프런트 서버 html cordingmonster.tistory.com 이제 예약 시스템 2번째 히스토리 시스템을 만들어보자! 이게 히스토리와/예약의 다른 부분은 예약 시스템은 사용자가 예약을 사용하거나/예약시간을 놓치거나 하거나 예약의 효력이 없어지는 상황이 된다면 사라진다 하지만 히스토리는 사용하든/효력이..