ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2025.11.24~12.05 토스 결제
    TIL 2025. 11. 26. 23:51

    여러 가지 결제 방법.

    토스 개발자 문서가 잘되어 있길래, 연습 삼아 연동을 해보려 했다.

    시작하기부터 잘 설명되어 있다.

    https://docs.tosspayments.com/guides/v2/get-started

    잘되어 있는데, 수수료도 쌀까?

     

    토스에서 제공해 주는 결제 위젯이라는 게 있다.

    https://docs.tosspayments.com/guides/v2/payment-widget/integration

     

     

    https://docs.tosspayments.com/guides/v2/get-started/payment-flow

    인증과 승인을 알아야 한다.

    인증으로 front에서 결제를 먼저 하고, 서버가 맞는지 최종 승인을 하는 것이다.

    문서에도 금액 위변조에 대비해 프런트에서 결제요청하기 전에 서버에 결제 금액을 저장하고 승인 시 검증하라고 한다.

     

    카드 등록해서 쓰는 자동 결제

    https://docs.tosspayments.com/reference#%EC%9E%90%EB%8F%99%EA%B2%B0%EC%A0%9C 

    구독 서비스 등에서 카드를 등록하고 자동으로 결제되는 것을 많이 경험했을 것이다.

    그때 사용할 수 있을 듯.

    다른 pg사도 그렇겠지만, 주기, 금액, 모두 커스텀이 열려있는 구조이다.

    말이 구독 결제이지, 그냥 한 번 등록해 놓으면 결제를 계속할 수 있다.

    그래서 그런지 주의사항에 구독용으로 안 쓰면 정책적으로 제한한다고 한다.

     

    일단 빌링 결제부터 연습해 보고, 코어 쪽이 기본인가?

    https://docs.tosspayments.com/guides/v2/billing 

    이거 따라가면 될 듯

     

    빌링 키 발급 전, auth key를 발급받는다. 이건 서버를 거치지 않고 바로 페이먼츠를 통해 받는다.

    https://docs.tosspayments.com/blog/subscription-service-1

    auth key는 일회용 인증 키라고 한다. 아마 만료시간도 있지 않을까. 

    이 키를 가맹점 서버에 전달하고 가맹점 서버가 페이먼츠에 api 쳐서 빌링키를 받아오는 구조.

     

    만약 하게 된다면 동일한 구조 일 듯.

    토스페이나, 토스 페이먼츠 하나는 결제 수단이고 하나는 pg인데..

    토스페이만 쓰고자 할 때도 있지만, 다른 결제 수단 카카오, 네이퍼 페이 등을 함께 제공해야 한다면,  정산 기록 등을 하나로 관리할 수 있는 pg사를 선택하는 것이 일반적인 거 같다.

    그럼 단순히 페이 하나만 사용할 경우, pg사 없이 하는 경우도 있나?

     

    토스페이와 같은  간편결제는 기존의 공인인증서 등 복잡한 결제 단계를 거치지 않고, 결제정보를 앱이나 웹에 미리 등록 후 간편한 인증(생체 인증과 비밀번호, 스마트폰 접촉, 비밀번호 등) 만으로 결제가 가능한 서비스예요. 토스 비바리퍼블리카에서 사업을 주도하고있어요 (ex. 네이버페이, 애플페이 등). 토스페이먼츠는 PG사로,  PG(Payment Gateway)는 전자지급결제대행업을 의미해요. 온라인에서 금융기관과의 거래를 대행해요. 온라인 쇼핑몰 등 여러 가맹점들이 다수 카드사와 개별 계약을 맺기 어려운 만큼, 통합적인 전자결제 인프라를 보유한 PG사를 활용해요.

     

    뭐 그러니, 토스페이, 네이버 페이 따로 계약하기 보다 pg사 하나만 계약하는게 연동에 쉽다는 의미 같다.

     

    https://docs.tosspayments.com/guides/v2/get-started/online-payment 여기도 잘 정리되어있다.

    뭐든 개발보다 도메인 이해가 어렵다.

     

    나이스페이

     

    이건 나이스 페이 빌링 결제인데, 토스 빌링결제와 흐름이 좀 다르다. 토스는 1번 과정이 있다. auth key를 받아서 서버가 다시 빌키를 요청하는 절차다.

    다른점은 토스는 sdk를 통해 인증과 빌키 발급이 나눠져 있고 나이스페이는 인증과 빌키 발급이 합쳐져 있는 그림이다. 

     

     

    결제, 결제 취소 시 timeout.

    pg사에 따라 다른데 결제, 결제 취소등의 성공은 대부분 웹훅으로 전달해주는 pg사가 많다.

    다만 실패는 콜백으로 주지 않는경우도 있다.

    토스는 주는거 같은데, 테스트 환경에서는 없는듯?

     

    몇가지 상황을 가정하자.

    timeout 후  콜백이 pg사 내부 문제로 오지 않을 경우

    - 어플리케이션에서 주기적으로 조회할 수 있다.

    - 다만, pg사에 따라 승인된 거래내역만 조회될 수 있다. -> 승인되지 않은 것은 자체 정의한 시간 이후에 실패하면 실패로 처리하자. -> 그 이후에 만약 성공이라면 이건 조정 프로세스를 따라야한다.

     

    - 결제 취소의 상태를 조회하고 싶을 수 있다. 토스는 기존 결제를 조회하면 여태 취소내역을 조회할 수 있다. 이를 통해 결제 취소 요청을 대조할 수 있다. 다만 pg사에 따라 결제 취소를 조회하려면 response로 오는 신규 결제 번호로만 거래내역을 조회할 수 있는 곳이 있다. -> 이건 추적이 불가능하다.... 음 어쩌지?

     

    - 결제 실패, 결제 취소 실패 등이 콜백으로 제공 하지 않는 경우도 있다. 실패는 주기적으로 어플리케이션에서 다시 조회해 상태를 변경한다. -> 이때도 자체 정의한 시간 이후에 실패하면 실패로 처리하자. -> 그 이후에 만약 성공이라면 이건 조정 프로세스를 따라야한다.

     

    찾다보니 빌링은 결제api호출 시 웹훅이 없다고 한다. 취소는 온다.

     

     

    토스 빌링 웹훅 관련 문의 - Toss payments 개발자 커뮤니티

    자동 결제는 성공은 웹훅이 오지 않는걸로 인지되는데 자동 결제 실패 시 "PAYMENT_STATUS_CHANGED" 웹훅은 전송이 되는지 궁금합니다.

    techchat.tosspayments.com

     

     

    아직 미완

     

     

    GitHub - choigiseong/payment-architecture

    Contribute to choigiseong/payment-architecture development by creating an account on GitHub.

    github.com

     

    댓글

Designed by Tistory.