카카오페이를 연동해보자
흐름
결제창 호출-> 검증-> 판별-> 실패 시 환불
사전 준비
카카오 개발자 센터가서
1. 간단히 어플 등록-> 카카오 로그인 활성화
2. 플랫폼 등록
웹사이트= web으로
3. 리다이렉트 url등록
서버 주소만 등록하면 된다
1. 카카오페이에게 요청
https://developers.kakao.com/docs/latest/ko/kakaopay/single-payment#prepare
/v1/payment/ready에게 POST로
헤더에 Authorization: KakaoAK ${APP_ADMIN_KEY}담아서
application/x-www-form-urlencoded;charset=utf-8 형식으로
동그라미 쳐져 있는 필수 값들을 넣어서 주면 된다
(2022/03/14일 기준이다)
2. 통신파트 준비
난 제네릭으로 만들었지만 제네릭을 모른다면
<T>를 지우고
T body->MultiValueMap<String,Object> body로 해주고
HttpEntity<T>->HttpEntity<MultiValueMap<String,Object>> 해주면된다
3.body and header만들기
header에 타입/인증을 넣어준다
body에 요구조건대로 넣어준다
cid=TC0ONETIME
테스트시 고정이다 (2022/03/14기준)
partner_order_id=가맹점에서 만는 임의난수
partner_user_id=구매유저 고유값 or 이메일
approval_url=처리성공시 리다이렉트 주소
그외 생략
cid를제외하고
임으로 그냥 막 넣어서 해보면 감이 올 것이다
테스트
2022-03-14 15:22:32.930 INFO 29716 --- [nio-8080-exec-4] c.k.p.apis.kakao.kakaoPayService : 카카오페이 통신결과: {"next_redirect_pc_url":"https:\/\/online-pay.kakao.com\/mockup\/v1\/0bd7a660d746f716cb1b5bf435c22fc46d7863360bfb0eb1da94e7d7682ba72c\/info","next_redirect_app_url":"https:\/\/online-pay.kakao.com\/mockup\/v1\/0bd7a660d746f716cb1b5bf435c22fc46d7863360bfb0eb1da94e7d7682ba72c\/aInfo","next_redirect_mobile_url":"https:\/\/online-pay.kakao.com\/mockup\/v1\/0bd7a660d746f716cb1b5bf435c22fc46d7863360bfb0eb1da94e7d7682ba72c\/mInfo","ios_app_scheme":"kakaotalk:\/\/kakaopay\/pg?url=https:\/\/online-pay.kakao.com\/pay\/mockup\/0bd7a660d746f716cb1b5bf435c22fc46d7863360bfb0eb1da94e7d7682ba72c","created_at":"2022-03-14T15:22:32","android_app_scheme":"kakaotalk:\/\/kakaopay\/pg?url=https:\/\/online-pay.kakao.com\/pay\/mockup\/0bd7a660d746f716cb1b5bf435c22fc46d7863360bfb0eb1da94e7d7682ba72c","tms_result":false,"tid":"T22edf28729930ed1b59"}
성공했다면 이런 내용을 받는데
본인 상태에 맞추어서 url을 리턴해주면된다
("next_redirect_pc_url","next_redirect_app_url","next_redirect_mobile_url")
그리고 프론트에서 열면
결제창이 열린다
그리고 서버는 리턴전에
카카오페이에서준 고유 번호=tid
가맹점에서 발생한 고유번호=partner_order_id를 가지고
세션이든/db든/redis든 넣어 두고
결제후 검증에 사용하면된다
난 redis에 키값 partner_order_id를 사용해 결제정보들을 넣어두고
세션에 partner_order_id/tid를 넣고
검증시 redis에서 꺼내어 검증한다
자세한건 검증 로직에서 보자
'Springboot > Api' 카테고리의 다른 글
Springboot 세틀뱅크 카드/가상계좌결제(1) 결제창 호출 (0) | 2022.03.16 |
---|---|
Springboot 카카오페이 연동(3) 환불하기 (0) | 2022.03.15 |
Springboot 카카오페이 연동(2) 결제승인 (0) | 2022.03.14 |
Springboot 사업자등록조회 api호출하기 (20) | 2021.12.21 |