React Native API 사용 (ft. redirect uri, 오픈뱅킹)

Jaehyun Park·2023년 11월 9일

1. React Native에 Open API 연결 (Redirect URL)

기존 react native + expo 프로젝트는 http 통신을 하는 게 아니라 웹 서버가 안 떠서 오픈 api 사용에 필요한 redirect uri(callback URL)을 입력 못하는 문제가 있었다.

지금 사용하려는 금융결제원의 오픈뱅킹 api 또한 api key 발급과 동시에 redirect uri을 입력하게 되어 있는데, expo의 경우 exp://ip:port 형식으로 http가 아닌 호스트로 열린다. (Bear RN도 마찬가지로 웹 서버로 열리지 않음)

그래서 어떻게 해결을 하는가? 검색을 통해 알아본 결과...

예전에 카카오 소셜 로그인 기능 구현을 위해 찾아본 내용에서도 봤던 건데 리액트 네이티브에서 callback URL이 필요한 경우에는 WebView를 띄워서 거기에 할당된 localhost 웹 서버를 redirected url로 입력하면 되겠다. 이미 그런 형태로 로그인, 인증 등을 구현하고 있는 어플리케이션은 이미 많이 써왔다 싶다. (e.g. 카카오 로그인 후 어플리케이션으로 돌아가세요.)

WebView를 통해 요청한 데이터를 파이어베이스나 클라이언트에 저장하든 해서 사용하면 될 것 같다.


2. 금융결제원 api key 문제

클라이언트에서 사용자의 계좌 정보 및 출금 가능액, 카드 정보 및 승인 내역을 받아오기 위해선 금융 정보를 기관에서 받아와야 하는데, 이를 위해 오픈 뱅킹 API를 사용하면 좋을 것 같다고 생각했다.

제일 처음 찾은 API는 Codef API였는데 프로젝트에 필요한 모든 기능을 지원하고 있었다. 그러나 공식 문서가 너무 옛날 것이며 정보가 많지 않아 눈을 돌린 게 금융결제원의 오픈뱅킹 API였는데, 카드 관련 정보는 지원하지 않지만 계좌 조회, 잔액 조희, 출입금 내역 조회 등을 지원하고 있어 이것으로 구현해도 될 것 같았다.

오픈뱅킹 개발자 사이트에서 회원가입후, 오픈뱅킹 서비스를 이용 등록하고 api key(client id, client secret)는 정상적으로 발급 된듯 하나 테스트 정보 관리가 비활성화 되어 있고(클릭하면 관리자에게 문의하라는 팝업 뜸) postman에서 사용자 인증(oauth)테스트 해볼 때에도 데이터가 제대로 반환되지 않았다.

{
    "rsp_code": "O0001",
    "rsp_message": "인증요청거부-인증 파라미터 오류([3000201])"
}

공식 api 문서(pdf)를 찾아보니 xxxx201 오류는

  1. client id가 존재하지 않을때
  2. key/secret이 맞지 않을 때
  3. 비활성화 되어 사용할 수 없을 때

3가지 이유가 있다고 한다.
결론적으로 사용자의 id, key 값에 문제가 있을 때 발생하는 에러코드이다.


⚠️ 아무래도 API KEY가 활성화 되지 않은 것 같아서 이것을 금결원에 즉시 문의한 결과 2023년 상반기까지는 개인 회원도 테스트 베드를 사용할 수 있게 했으나 이제는 안 된다고 한다... 사실 개인이 테스트베드 통신은 가능해도 실제 사용은 안 될 거라는 답변을 받았다. 기절


혹시 몰라서 개발자 오픈채팅에도 물어봤는데 다 안 된다니 안 되는 게 맞나보다..

상태 실시간 변경이 핵심 로직이긴 하지만 더 이상 여기에 매달리는 건 의미 없어보인다. 확장성에 의의를 두고 가상의 환경을 구현해보도록 해야겠다.

사실 되는 건데 내가 못한 것 같은 찝찝한 기분이 왜 들까..?

profile
Technologically solve everyday challenges

0개의 댓글