이제 클라이언트가 결제를 하면
지정했던 url로 카카오 쪽에서 다시 보내준다
이전에 성공/실패/취소에따라 url를 보내줬는데
그걸 보고 다시 보내주는 것이다
흐름
pg토큰을 받음->결제내역 요청-> 서버에서 검증-> db
이 화면을 받는 순간 우리 서버로도
pg토큰이 날아온다
1. 세션에서 tid/partner_order_id값을 꺼내 준다
String[] orderIdAndTid=httpSession.getAttribute("orderIdAndTid").toString().split(",");
String mchtTrdNo=orderIdAndTid[0];
String tid= orderIdAndTid[1];
https://developers.kakao.com/docs/latest/ko/kakaopay/single-payment#approve
2. 필수 값을 전달한다
(2022/03/14 기준)
String pgToken=request.getParameter("pg_token").toString();
HttpHeaders httpHeaders=new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
httpHeaders.add("Authorization", "KakaoAK "+kakaoAdminKey);
MultiValueMap<String,Object> multiValueBody=new LinkedMultiValueMap<>();
multiValueBody.add("cid", cid);
multiValueBody.add("partner_order_id", mchtTrdNo);
multiValueBody.add("partner_user_id", utillService.getLoginId());
multiValueBody.add("tid", tid);
multiValueBody.add("pg_token", pgToken);
JSONObject respon=requestTo.requestPost(multiValueBody, "https://kapi.kakao.com/v1/payment/approve ", httpHeaders);
정상적으로 오지 않거나/검증에 실패한다면
환불을 해주면 된다
requestTo.requestPost(multiValueBody, "https://kapi.kakao.com/v1/payment/approve ", httpHeaders);
'Springboot > Api' 카테고리의 다른 글
Springboot 세틀뱅크 카드/가상계좌결제(1) 결제창 호출 (0) | 2022.03.16 |
---|---|
Springboot 카카오페이 연동(3) 환불하기 (0) | 2022.03.15 |
Springboot 카카오페이 연동(1) 결제창 호출 (0) | 2022.03.14 |
Springboot 사업자등록조회 api호출하기 (20) | 2021.12.21 |