올리브영 테크블로그 포스팅 올리브영 결제수단 연동, 이렇게만 하면 끝!
Order & Payment

올리브영 결제수단 연동, 이렇게만 하면 끝!

올리브영 현대카드 리워드와 모바일상품권 도입기

2024.12.30

안녕하세요, 올리브영 주문 결제 스쿼드에서 백엔드 개발을 담당하고 있는 ❓그거아세용❓ 입니다.

온라인 커머스의 가장 중요한 요소 중 하나는 단연 주문결제 시스템이라고 생각합니다. 고객이 원하는 상품을 선택하고 결제까지의 과정이 원활하고 빠르게 이루어질 때, 고객들이 느끼는 만족도가 높아지기 때문입니다.

올리브영에서는 이 주문결제 프로세스를 최적화하고, 편리하고 안전하게 쇼핑을 즐길 수 있도록 보다 나은 결제 환경을 구축하는 데 집중하고 있습니다. 이 과정에서 얻은 경험을 바탕으로, 안정성 있는 시스템을 통해 신뢰를 쌓아가는 데 기여하고자 하는 것이 저의 목표입니다. 😆

이 글에서는 API 연동을 통해 두 가지 결제수단을 연동한 개발 과정을 ⭐️쉽게⭐️️ 다뤄보겠습니다!! Let's Go!!


❓어떤 결제수단을 연동했나요❓


올리브영 현대카드 리워드

올리브영 현대카드 리워드는 고객이 PLCC카드(올리브영x현대카드) 를 발급받고 사용할 때마다 일정 금액이 리워드로 적립됩니다. 이 리워드는 고객이 올리브영에서 자유롭게 사용이 가능한 '올리브영 현대카드 리워드' 입니다.

PLCC(Private Label Credit Card)는 카드사가 특정 제휴사와 협력하여 그 제휴사에 집중된 혜택과 서비스를 제공하는 신용카드를 의미합니다. 일반 신용카드와는 달리, 해당 카드사와 제휴된 특정 상업자에서만 제공되는 특별한 혜택을 받을 수 있는 특징이 있습니다.

고객이 PLCC 카드를 사용할 때 자동으로 리워드 포인트가 적립되고, 이 적립된 리워드를 사용시 차감되는 로직을 구현했습니다. 이를 통해 고객은 리워드를 손쉽게 사용할 수 있게 되었습니다!

카드
(예쁜 카드 디자인 구경하고 가세요~~ 💳)

모바일 상품권

모바일 상품권은 온라인과 오프라인 모든 영역에서 사용이 가능하며, 잔여 금액 연동 시스템으로 구축하여 소비자가 남은 금액을 계속해서 사용할 수 있는 유연한 결제 방식을 제공합니다. 고객은 지급되는 난수번호를 주문서에 입력함으로써, 해당 상품권의 잔액만큼 결제 할 수 있습니다.

고객이 난수 번호를 입력하는 과정에서 직관적인 UI와 결제 흐름을 고려한 연동 작업을 진행하여, 결제 과정에서의 불편함을 최소화하고, 사용자가 쉽게 결제를 완료할 수 있도록 했습니다. 이를 통해 모바일 상품권을 더 매력적인 결제 수단으로 자리매김 할 수 있었습니다. 🎵


이렇게 결제수단으로 올리브영 현대카드 리워드, 모바일 상품권이 올리브영 주문서에 들어왔습니다! 짜잔~~ 💕💕💕 (올리브영 현대카드가 궁금하다면? 클릭!🖱️ )


❓결제수단을 어떻게 연동했나요❓


이 두 가지 결제수단은 API 를 통해 연동하였습니다. 비록 API가 새로운 기술은 아니지만 외부 서비스와의 안정적인 연동과 향후 추가적인 서비스 통합을 고려하여 쉽게 확장이 가능한 방법으로 진행하였습니다. 위에서 말씀드렸다시피 ⭐️쉽게⭐️️ 설명드리기 위해 잠깐 API 란 무엇인지 설명해드리겠습니다.✌️


API(Application Programming Interface)

API는 애플리케이션 간의 상호작용을 가능하게 해주는 인터페이스입니다. 즉, 서로 다른 시스템이나 애플리케이션들이 데이터를 주고받거나 특정 기능을 호출할 수 있도록 정의된 규칙과 프로토콜입니다. 이를 통해 개발자들은 외부 시스템과의 복잡한 연결 작업을 추상화하고, 효율적인 데이터 처리를 할 수 있습니다.

아래의 사진을 예를 들면, 올리브영은 고객의 요청을 받아서 외부 시스템에 그 요청을 던지고, 그 응답을 받아 다시 고객에게 전달하는 형태로 API를 활용합니다. 이 과정에서 올리브영은 API 호출을 통해 외부 시스템과의 연결을 관리하며, 고객에게 필요한 서비스를 제공합니다.


연동의 주요과정

  1. 서비스별 API 제공받기 🙇‍♀️

    • 첫 번째 단계는 올리브영 현대카드 리워드와 모바일 상품권을 제공하는 외부 시스템에서 API를 제공받는 것입니다. (계속되는 설명에서는 '외부 시스템' 이라고 줄여서 설명하겠습니다.)
    • 각 결제 수단은 연동을 위한 고유의 API 문서를 가지고 있으며, 이를 통해 사용자가 결제수단을 및 정보를 처리할 수 있는 방법이 정의되어 있습니다.
  2. API 인증 및 보안 처리 🔐

    • 각 결제 수단의 API는 보안을 위해 인증 절차가 필요합니다.
    • 인증방식은 Basic Authentication 을 사용하여, API 호출 시 Authorization 헤더에 인증키를 포함시켜 인증을 처리했습니다.
        // 요청 헤더 설정
        Map<String, Object> headerMap = new HashMap<String, Object>();
        headerMap.put("Content-Type", "application/json"); 
        headerMap.put("Authorization", "Basic " + API인증키);
    • 인증키는 외부 API를 호출할 때 사용하는 인증 정보입니다. 서비스 제공자가 발급한 고유의 키로, API 서버는 이 키를 통해 요청자가 인증된 사용자인지 권한이 있는 사용자인지를 확인합니다.
  3. 주문서 연동 🤝

    • API 인증 후, 각 결제 수단을 주문서에 연동합니다.
    • 고객이 주문서에 진입하여 해당 결제 수단으로 결제를 진행시, API를 호출하여 잔여 금액 조회 및 결제 차감을 처리합니다.
    • HttpClientUtil 클래스의 jsonToJsonUtfSend 메서드를 사용하여 JSON 데이터를 API에 전송하는 방법을 사용했습니다.
      JsonResponse jsonResponse = new HttpClientUtil().jsonToJsonUtfSend (
            apiUrl,                     // API URL
            jsonString,                 // 전송할 JSON 데이터
            headerMap,                  // HTTP 헤더 
            ...
        );
  4. 결제 완료 및 상태 반환 👍

    • 결제가 완료되면, JsonResponse 객체에 반환된 응답 값을 담아 요청의 성공 여부와 반환된 데이터를 처리합니다.
    • 이 응답은 성공 또는 실패 메시지와 함께 상세한 처리 결과를 전달합니다. 결제 성공 시, 고객에게 결제 완료 페이지를 표시하고, 실패 시에는 오류 메시지를 출력하여 재시도할 수 있도록 합니다.

❓어떤 API를 연동했나요❓

  • 사용 가능 금액 조회 : 고객이 현재 사용가능 금액을 확인할 수 있는 기능입니다. 고객의 정보를 기반으로 사용 가능 금액을 조회하는 방식으로 구현합니다.

  • 금액 사용 : 고객이 결제 시 보유 금액을 사용할 수 있는 기능을 구현합니다. 결제 요청 시 금액을 차감하고, 결제 금액과 차액을 처리하는 로직을 구성합니다.

  • 금액 취소 : 결제가 취소되거나 변경될 경우, 이미 사용된 금액을 되돌리는 기능을 구현합니다. 만약, 금액 사용 및 주문에 오류가 발생할 경우 결제 금액 사용이 취소 되어야 합니다. 이때, 금액 취소 요청을 API로 전송하고 적절한 처리가 이루어지도록 합니다. 롤백 과정에서 취소 API 호출을 놓치지 않도록 처리하는 것이 중요합니다!

  • 소멸 예정 금액 조회 : 고객의 보유 잔액 중 소멸 예정인 금액을 확인할 수 있도록 서비스를 제공합니다. 소멸될 금액을 미리 파악하고 이를 사용하도록 유도할 수 있습니다.


❓어떤 역할을 하고 있나요❓

위와 같이 올리브영 서버는 고객의 다양한 요청이 발생하면 해당하는 API를 호출하여 고객의 요청을 진행합니다. 해당 요청이 완료되면 각 결과를 바탕으로 고객에게 알맞는 화면을 제공합니다. 결제는 고객의 쇼핑 여정에서 중요한 부분이기 때문에, 이 과정이 얼마나 원활하고 직관적인지에 따라 전체적인 만족도가 달라지게 됩니다. 이렇게, API는 고객의 결제 흐름을 원활하게 만들고, 결제 시스템을 안정적으로 운영하는 데 중요한 역할을 합니다.

올리브영 현대카드 리워드와 모바일 상품권 결제 수단 연동을 통해 올리브영에서만 사용 가능한 리워드💸 설계로 리워드 중심의 추가 매출을 확보와 재방문 유도를 위한 구조를 확립하였습니다. 특히, 올리브영 현대카드 리워드는 PLCC 카드 사용을 통해 적용되는 리워드가 온/오프라인 제한없이 사용이 가능하다는 점! 완전 럭키비키잖아~~~ 🍀🍀🍀


❓어떤 점을 느낄 수 있었나요❓

매 프로젝트를 진행하면서 결코 혼자의 힘으로 완성될 수 없다는 사실을 다시 한 번 깨달았습니다. 특히 이번 프로젝트에서는 협업의 중요성을 깊이 실감할 수 있었던 시간들이었습니다. 시스템 연동 과정에서, 외부 시스템을 담당하는 다른 팀과의 끊임없는 협의를 통해 요구사항을 명확히 하고, 문제를 해결해 나갔습니다. 제공받은 API 명세와 실제 동작 간의 차이를 확인하고, 이를 해결하기 위해 명확한 질문과 논의를 이어나갔던 순간들이 협업의 중요성을 실감하게 했습니다. 그리고 이 어려운 순간들을 헤쳐 나간 팀원분들 덕분에 프로젝트를 성공적으로 마무리할 수 있었습니다.


또한, 우리가 구축한 시스템이 고객에게 실질적인 가치를 제공하고, 그 사용 과정에서 직접적인 도움이 되고 있다는 점에서 큰 뿌듯함을 느낍니다. 이번 프로젝트 또한 그런 의미에서 하나의 큰 성과라고 생각합니다. 🌟 이 글을 쉽게 설명하려고 노력했는데, 잘 전달이 되었을까요!? 관심을 가지고 끝까지 읽어주셔서 진심으로 감사드립니다. 다시 한번, 고생 많으셨고 정말 감사합니다. 😊

안녕
(스르륵 퇴장,,,)
주문결제
올리브영 테크 블로그 작성 올리브영 결제수단 연동, 이렇게만 하면 끝!
🍊
그거아세용 |
Back-end Engineer
귤에 붙어 있는 하얀 거 이름은 귤락 입니다.