- [셸위:게임 친구 매칭 사이트] 토스 페이먼츠 API - 잔액 조회 기능2024년 09월 25일
- Song hyun
- 작성자
- 2024.09.25.:18
728x90반응형[셸위:게임 친구 매칭 사이트] 토스 페이먼츠 API - 잔액 조회 기능
잔액 조회 기능! 이번에 처음 알게 된 기능이었다.
기획 단계에서 대금 지급 기능을 구상할 때에는 막연히 "입금 기능"만 넣으면 되겠거니~ 생각했는데, 생각보다도 개념이 복잡했다. 대금 지급을 하려면 서브몰이라는 객체도 있어야 하고, 우리 플랫폼이 얼마나 지급할 수 있는지도 알아야 한다니. 처음에는 꽤 난감했지만 기능을 만들다보니 조금 적응이 되었다.
(지급 신청 기능은 여기 !! https://whatsthatsound.tistory.com/680)
잔액 조회 기능이란, 한 마디로 "우리 회사가 지금 얼마나 줄 수 있지?!"를 확인하는 기능이다. 우리가 돈이 얼마 남았는지 잔고를 확인하는 것과 비슷하다.
https://docs.tosspayments.com/reference#%EC%9E%94%EC%95%A1-%EC%A1%B0%ED%9A%8C
아래의 코드는 지급 정산 금액이 얼마나 있는지를 체크하는 메서드이다. 잔액 조회는 많은 파라미터가 필요없이, URL, Authorization만 있으면 충분하다. (GET방식이니까..)
/** * 현재 지급 가능한 금액 체크 * @param exchageRecord * @return * @throws IOException * @throws InterruptedException */ public Boolean sendRequestExchange(RegisterExchange exchageRecord) throws IOException, InterruptedException { // 1. 현재 사이트가 지급할 수 있는 잔액 체크 // (1) HttpMessage 만들기 HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.tosspayments.com/v1/payouts/sub-malls/settlements/balance")) .header("Authorization", "Base64 처리") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); // (2) 응답 받아오기 HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); String responseBody = response.body(); Long balance = extractBalance(responseBody); // 2. 만약 잔액이 충분하다면 true, 아니라면 false if(balance >= exchageRecord.getAmount()) { return true; } else { return false; } }
아래의 코드는 balance의 value 값을 추출해주는 메서드!
/** * Balance 값 (현재 지급 가능액) String에서 추출 * @param json * @return */ private static Long extractBalance(String json) { String balanceKey = "\"balance\":"; int startIndex = json.indexOf(balanceKey); if (startIndex == -1) { throw new IllegalArgumentException("Balance key not found in the JSON response."); } startIndex += balanceKey.length(); int endIndex = json.indexOf(",", startIndex); // endIndex가 없으면 객체가 종료된 위치를 찾아야 함 if (endIndex == -1) { endIndex = json.indexOf("}", startIndex); } String balanceValue = json.substring(startIndex, endIndex).trim(); // balanceValue를 Long으로 변환하여 반환 return Long.parseLong(balanceValue); }
728x90반응형'💡My project > 셸위 : 게임 친구 매칭 사이트' 카테고리의 다른 글
[셸위:게임 친구 매칭 사이트] 게시판 구현 (3) 2024.09.25 [셸위:게임 친구 매칭 사이트] 토스 페이먼츠 API - 서브몰 지급 정산 기능 (0) 2024.09.25 [셸위:게임 친구 매칭 사이트] 토스 페이먼츠 API - 서브몰 생성 기능 (0) 2024.09.25 [셸위:게임 친구 매칭 사이트] 토스 페이먼츠 API - 결제 취소 기능 (0) 2024.09.25 [셸위:게임 친구 매칭 사이트] 카카오 페이 API - 결제 취소 기능 (5) 2024.09.25 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)