- [셸위:게임 친구 매칭 사이트] 토스 페이먼츠 API - 결제 취소 기능2024년 09월 25일
- Song hyun
- 작성자
- 2024.09.25.:16
728x90반응형[셸위:게임 친구 매칭 사이트] 토스 페이먼츠 API - 결제 취소 기능
이번에 소개할 기능은 토스 페이먼츠 API의 결제 취소 기능이다. 사실상 request 요소가 다른 것 외에는 카카오페이 결제 취소와 동일하다고 볼 수 있다.
결제 취소의 경우, 이미 승인되었던 값을 찾아 취소하는 것이기 때문에 주문할 때 만큼의 까다로운 검증 단계가 있는 것은 아니다. 간단하게 API 요청하는 부분의 코드만 살펴보자.
-시크릿키라고 적어둔 곳에는 나의 시크릿키를 넣는다. 그러면 encodedKey를 통해 Base64 전략으로 인코딩처리된다.
(이것때문에 너무 힘들었다. 이거 처리를 안해서 오류가 계속 났었다. 토스 개발자분들 도와주셔서 감사합니다ㅜㅜ)
-그리고 주문할 때 당시의 정보들을 받아 parameters에 넣어준다. 그리고 요청하면 끝!
/** * 토스 페이 - 환불 처리 * @param refund * @return * @throws InterruptedException * @throws IOException */ public List<String> readyRefundToToss(String id) throws IOException, InterruptedException { String base64 = "시크릿키"; String encodedKey= new String(Base64.getEncoder().encode((base64+":").getBytes(StandardCharsets.UTF_8))); // order amount 찾기 Refund refund = refundRepository.selectRefundById(Integer.parseInt(id)); Order order = orderRepository.selectOrderById(refund.getOrderId()); OrderDetail orderDetail = orderDetailRepository.selectOrderDetailByOrderId(order.orderId); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.tosspayments.com/v1/payments/"+order.orderId+"/cancel")) .header("Authorization", "시크릿키") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse<String> response11 = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); Map<String,String> parameters = new HashMap<>(); parameters.put("paymentKey", order.orderId); parameters.put("cancelReason", "고객 변심"); parameters.put("cancelamount", order.getAmount().toString()); parameters.put("refundReceiveAccount ", "{bank: '테스트', accountNumber: '테스트계좌번호입니당', holderName: '엄송'}"); // HttpMessage 만들기 HttpEntity<Map<String,String>> requestEntity = new HttpEntity(parameters,this.getTossHeaders()); System.out.println(requestEntity); RestTemplate template = new RestTemplate(); // 환불 요청 url String url = "https://api.tosspayments.com/v1/payments/"+order.orderId+"/cancel"; // 응답 객체 생성 List<String> response = template.postForObject(url, requestEntity, List.class); return response; }
728x90반응형'💡My project > 셸위 : 게임 친구 매칭 사이트' 카테고리의 다른 글
[셸위:게임 친구 매칭 사이트] 토스 페이먼츠 API - 잔액 조회 기능 (0) 2024.09.25 [셸위:게임 친구 매칭 사이트] 토스 페이먼츠 API - 서브몰 생성 기능 (0) 2024.09.25 [셸위:게임 친구 매칭 사이트] 카카오 페이 API - 결제 취소 기능 (5) 2024.09.25 [셸위:게임 친구 매칭 사이트] 카카오 페이 API - 결제 기능 (0) 2024.09.25 [셸위:게임 친구 매칭 사이트] 토스 페이먼츠 API - 결제 기능 (0) 2024.09.25 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)