1. 테스트 계정 생성
금융 결제원에서 제공하는 개발자 사이트의 테스트 베드를 이용하면
금융결제원의 다양한 API서비스를 편리하게 개발 및 테스트 가능합니다.
본격적인 테스트에 들어가기 앞서, 다음 링크에서 먼저 가입해줍니다.
https://developers.kftc.or.kr/dev/login
금융결제원 오픈API 개발자사이트
계정 활성화를 위한 이메일을 못받으신 분은 여기(재발송) 을 클릭해주세요.
developers.kftc.or.kr
2. 테스트 환경 설정
정상적으로 회원가입이 완료 되었다면 MY PAGE> 내 서비스 관리 탭을 타고 들어가 테스트 할 서비스(오픈뱅킹, 오픈지로, 온투업중앙기록관리 등)의 신청 버튼을 눌러 '이용중'상태로 바꿔줍니다.
다음, API Key관리 탭으로 이동하여 Callback URL을 입력 후 저장버튼 클릭후 서비스 별 Callback URL등록 버튼을 클릭해 '완료'상태로 바꿔줍니다. 여기서 Callback URL은 API이용 시 사용자인증이 완료되면 리다이렉트할 URL을 넣어줍니다.
여기서 Client ID, Client Secret, Callback URL은 API 요청시 필요한 정보들이니 따로 메모해두는것이 좋습니다.
2-1. 약정 계좌 관리
테스트 정보 관리> 약정계좌 관리탭에서 테스트용 계좌 정보를 등록합니다.
입금계좌 : 입금이체 API 이용 시 필요한 이용기관의 출금용 지급계좌 정보를 등록합니다.
출금계좌 : 출금이체 API 이용 시 필요한 이용기관의 입금용 수납계좌 정보를 등록합니다.
3. 사용자 인증
테스트 API를 사용하기 위해서는 사용자 인증 및 약정계좌 관리등 절차가 필요합니다. 테스트 사용자의 계좌를 등록하고, Token을 발급받아 사용자 권한의 오픈뱅킹 API를 테스트 해 볼수 있습니다.
위는 요청토큰의 권한에 따라 접근할 수 있는 API를 분류 해 놓았으며, 자체인증 이용기관의 API나 더욱 상세한 정보를 보고자 한다면 API 명세를 함께보시는것을 적극 추천드립니다.
사용자인증(OAuth 2.0)은 3-legged 인증과 2-legged 인증으로 구분됩니다.
3-legged 인증은 사용자가 이용기관의 앱을 통하여 오픈뱅킹 서비스에 접근하기 위한 인증 기능을 제공합니다. 사용자는 오픈뱅킹(Service Provider)의 인증 페이지에서 본인인증 및 조회/출금동의를 통하여 인증하고, 이용기관은 사용자에 대한 Access Token을 얻음으로써 사용자의 인증을 획득합니다.
2-legged 인증은 사용자의 개입 없이 단순히 이용기관이 자신에 대한 인증정보(Client ID, Client Secret)를 가지고 인증함으로써, 오픈뱅킹으로부터 이용기관에 대한 Access Token을 획득하는 것을 의미합니다.
3-1. 사용자 인증 (3-legged)
API를 테스트 하기에 앞서 요청 권한(Token)을 얻기위해 인증을 실시해줍시다.
금융결제원에서 제공해주는 Swagger를 이용하여 간편하게 테스트 가능하며, Postman을 이용하여 직접 작성해도 문제없습니다.
우리는 테스트 API로 호출하여 과금되는일이 없도록 주의합시다.
테스트용 메시지 URL은 https://testapi.openbanking.or.kr/oauth/2.0/authorize로 작성합니다.
- client_id, redirect_uri는 2. 테스트 환경설정에 있는 값들을 기입합니다.
- scope : 3.사용자 인증의 권한범위 이미지를 참고하여 원하는 scope를 기입합니다(login inquiry, login transfer, login inquiry transfer)
- state : 32byte의 난수값을 입력한다. 32byte가 차지 않으면 파라미터 에러가 발생.
※ auth_type 별 필수요소를 꼭 확인 후 API를 호출합시다.
- swagger 호출결과
Postman 호출결과
정상적인 시스템 흐름이라면 Redirect되는 페이지에서 Parameter를 넘겨받아 바로 토큰발급 API를 실행시켜주는것이 맞지만, 지금은 테스트 환경이고 만들어진 화면도 없어 아무 URL이나 입력했습니다(그렇다고 진짜 실행되는 도메인은 피해주세요). 따로 화면이 표시되지 않더라도 URL에서 파라미터로 넘어온 값들을 확인할 수 있습니다.
(ex. http://localhost:8080/test?code=o9MztBS3fysYiep6z34cph******&scope=inquiry%20login%20transfer &client_info=test &state=b80BLsfigm9OokPTjy03elbJqRHOfGSY)
3-2. 토큰발급(사용자 토큰발급 요청)
- code : 3-1)작업후 전달받은 Parameter중 code값을 기입합니다.
- client_id, client_secret, redirect_uri : 2)에서 메모한 값을 기입해줍니다.
- 요청 성공시 전달받은 access_token, refresh_token, user_seq_no를 잘 저장해두고 테스트시 유용하게 사용합시다.
3-3. 토큰발급(이용기관 토큰발급 요청)
이용기관은 사용자인증 API의 호출없이 바로 /token API를 호출하여 토큰을 획득합니다.
- client_id, client_secret : 2)에서 메모한 값을 기입해줍니다.
- scope : sa(자체인증기관), oob(센터인증기관)
- oob, sa scope는 refresh를 지원하지 않기때문에 응답에 refresh token이 없습니다. API설계시, expires_in(만료기간)을 이용해 적절하게 토큰관리가 이루어져야 합니다.
이제 테스트를 위한 준비가 완료되었습니다.
'API' 카테고리의 다른 글
[API] 금융결제원 Open Banking API 3. API 활용하기 (자금반환청구 API) (0) | 2022.02.15 |
---|---|
[API] 금융결제원 Open Banking API 2. API 활용하기(입금이체 API) (0) | 2022.02.15 |