본문 바로가기
PRODUCT MANGER STUDY/CODESTATES_PMB_DAILY_HW

네이버 간편결제 API는 어떻게 작동될까? | 코드스테이츠 PMB 14기 | W7D3

by 소소여니 2022. 10. 12.
728x90

 

내가 가장가장 많이 사용하는 결제 방법은 바로 네이버페이!

원래 부터 네이버의 충성 고객이기도 했고, 네이버페이에 포인트가 쌓이는 게 쏠쏠하기도하고 여러모로 간편하기도해서 

가장 많이 사용하고 있는 결제 방법이다!

 

늘 이런 결제가 개발적으로는 어떻게 작동되고있는건지 궁금했는데 

오늘 제대로 한번 알아보자!

 

💸먼저 API의 개념에 대해서 다시 한번 정리하고 넘어가자 !

API 는 Application Programming Interface의 줄임말로, 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 매커니즘이다. 한쪽 당사자가 특정한 방식으로 구성된 원격 요청을 보내면 다른 쪽 당사자의 소프트웨어가 이에 응답하는 방식으로 작동된다. API를 사용하면 구현 방식을 알지 못하는 제품 또는 서비스와도 통신할 수 있으며 애플리케이션 개발을 간소화하여 시간과 비용을 절약할 수 있다. 

 

💸그럼 네이버페이 결제 API를 제대로 살펴 보자!

네이버페이는 신용카드나 계좌정보를 한번만 등록해 놓으면 네이버페이 비밀번호로 간편하고 안전하게 결제할 수 있는 서비스이다. 네이버페이는 크게 결제형주문형으로 나눌 수 있다. 

 

[ 결제형 ] 으로 사용하는 경우, 가맹점의 주문서에서 결제수단의 하나로 사용된다. 

[ 주문형 ] 으로 사용되는 경우, 가맹점의 상세 페이지에 네이버 페이 구매하기 버튼이 노출되어,

네이퍼페이 구매하기를 통해 별도의 가맹점 회원가입또는 로그인을 하지 않고 네이버 ID로 주문과 결제가 가능하다. 

 

오늘의 과제에서는 간단한 결제 과정 즉 결제형 네이버페이 API에 대해서 살펴보고자 한다. 

그렇다면 API의 전체 작동 플로우를 확인해보자

 

💸API 전체 작동 플로우 

위의 사진은 네이버페이 간편 결제를 사용하는 플로우를 정리한 그림이다.

이 떄 사용자는 어플 및 서비스를 사용해 결제를 시도하는 사람이고,

맹점은 네이버페이 API를 사용해서 고객에게 결제를 받으려는 어플 및 서비스 제공자 이다. 

 

네이버페이를 이용한 결제 시스템은 크게

[ 결제창 호출 ] > [ 결제 승인 ] > [ 결제 완료 ]  3단계로 나눌 수 있다. 

 

1. 결제창 호출 

1) 사용자가 물건을 선택하고 결제 수단으로 [네이버페이] 를 선택한다. 

2) 가맹점은 네이버페이측에 결제창을 호출을 요청한다. 

3) 사용자는 결제창에 결제 정보를 입력하고 결제 버튼을 누른다. 

4) 가맹점은 네이버페이로부터 결제 확인 응답을 받는다.

2. 결제 승인 

1) 가맹점은 네이버페이 결제번호를 파라미터로 하여 최종 결제를 승인을 요청한다.

2) 네이버페이는 가맹점에 결제 승인 결과를 응답으로 보낸다.  

3. 결제 완료

1) 가맹점은 받은 응담을 토대로 사용자에게 결재 결과를 안내한다. 

 

위와 같은 3단계 순서로 네이버페이 결제가 진행된다.

그럼 각 부분별로 어떻게 API가 구성되었고, 어떤 파라미터값을 주고 받는지 자세히 살펴보자!

 

💸결제창 호출 

 네이버페이는 결제창 호출 기능에대한 JavaScriptSDK*를 제공한다.

이는 가맹점 내 주문서에 간단한 스크립트 추가를 통해 네이버페이 결제버튼의 추가, 결제 화면 생성 및 노출 처리를 쉽게할 수 있도록 제공한다. 사용자가 네이버에 로그인 되어있지 않으면 네이버 로그인 페이지로 유도하는 기능 및 네이버페이 인증 확인이 필요한 사용자도 인증페이지로 유도하는 기능을 제공한다. 

🤔 잠깐, SDK란?

SDK는 특정 플랫폼을 대상으로하는 소프트웨어 애플리케이션을 개발하는 데 사용할 수있는 도구 세트를 말한다. 
SDK에는 프로그래머가 애플리케이션을 개발하는 데 도움이되는 도구, 라이브러리, 문서 및 샘플 코드, API등이 포함된다. SDK는 서로 호환되는 구성 요소 / 도구를 찾을 필요가없고 설치하기 쉬운 단일 패키지에 모두 통합되어 있기 때문에 소프트웨어 개발자의 삶을 쉽게 만들어준다. 

🤔 SDK vs API ?

API는 소프트웨어 프로그램이 서로 상호 작용할 수 있도록하는 인터페이스 인 반면
SDK는 특정 플랫폼을 대상으로하는 소프트웨어 응용 프로그램을 개발하는 데 사용할 수있는 도구 집합입니다.
SDK의 가장 간단한 버전은 특정 프로그래밍 언어와 상호 작용하는 데 필요한 일부 파일이 포함 된 API 일 수 있습니다. 따라서 API는 모든 디버깅 지원 등없이 간단한 SDK로 볼 수 있습니다. 다시말해 SDK에 API도 프로그램을 개발하는데 사용할 수 있는 도구로 포함된다. 

✔️지원 함수 

네이버페이 객체를 생성하고, 결제 화면 호출, 닫기, 버전정보 확인의 기능을 하는 함수를 지원한다. 

 

✔️Parameters

[ Create ]

파라미터 리스트
create 함수 샘플 코드

이 부분은 네이버페이 객체에 대한 파라미터 값이다.  (create 함수를 사용할 때 사용하는 파라미터)

이 부분에는 가맹점 정보, 결제 화면 오픈 방식등과 같은 네이버페이 서비스 대한 기본 값을 지정한다.

 

[Open] 

Open 함수 흐름도

위 흐름도에서 알 수 있듯, 가맹점이 open()을 호출하면 결제 예약(reserve)이 진행되고 결제 화면이 열린다.

(좌) open 함수 샘플 코드 (우) 파라미터 리스트

이는 open함수를 사용할때 입력하는 파라미터 값이다. 

결제하려는 상품에 대한 정보를 지정한다. 

[결제 응답]

사용자가 결제창에 정보를 입력하고 결제 버튼을 누르면 returnURL로 이동해 결제 번호를 전송한다. 

그럼 가맹점은 사용자로 부터 전달받은 정보를 네이버페이에 전송하고, 결제 응답을 받는다. 

 

💸결제 승인 요청

위에서 결제 응답으로 성공 응답을 받았다면 결제 승인을 요청한다. 

요청 API에 오늘 배운 RESTful API에서 사용되는 POST를 확인할 수 있었다. (반갑)

승인요청에 대한 응답으로는 위와같은 파라미터값을 받는다. 

 


https://aws.amazon.com/ko/what-is/api/

 

API란 무엇인가요? - API 초보자를 위한 가이드 - AWS

 

aws.amazon.com

https://www.redhat.com/ko/topics/api/what-are-application-programming-interfaces

 

API(애플리케이션 프로그래밍 인터페이스)란 - 개념, 기능, 장점

API(애플리케이션 프로그래밍 인터페이스)란 애플리케이션 소프트웨어의 개발 및 통합에 사용되는 정의 및 프로토콜 세트를 뜻하며, 개발 민첩성과 간소화를 지원합니다.

www.redhat.com

https://ko.strephonsays.com/api-and-vs-sdk-4857

https://d2.naver.com/helloworld/2351859

https://developer.pay.naver.com/

 

네이버페이 개발자센터

네이버페이 간편결제 개발자센터를 통해 쉽고 빠르게 결제 연동부터 테스트 환경 제공까지, 빠르고 쉬운 네이버페이 결제 연동을 지원해 드립니다. FAQ 자주 묻는 질문 대표 유형별 질문을 모아

developer.pay.naver.com

https://doozi0316.tistory.com/entry/SDK-API%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

SDK, API의 개념과 차이점

🍙 API API란 Application Programming Interface의 약자로, 모듈화하여 만들어진, 어떤 기능을 제어/제공하는 인터페이스를 말한다. 우리가 사용하는 대부분의 애플리케이션은 API에 의존하고 있다. 🔔 예

doozi0316.tistory.com

 

728x90