Tag: 결제시스템

  • 이커머스 앱 PG 연동 방법 — 결제 시스템에서 가장 많이 발생하는 실수 5가지

    이커머스 앱 PG 연동 방법 — 결제 시스템에서 가장 많이 발생하는 실수 5가지

    뉴트리 3.3 건강 커스터마이징 몰, 유통닷컴 B2B 유통 플랫폼 이커머스 프로젝트를 개발하면서 결제 시스템에서 반복적으로 발견한 실수들을 정리합니다. PG사 연동은 생각보다 훨씬 세심한 설계가 필요합니다.

    PG사(결제대행사)란?

    앱이나 웹에서 신용카드 결제를 받으려면 PG사(Payment Gateway)를 중간에 끼워야 합니다. 국내 주요 PG사는 토스페이먼츠, 나이스페이, KG이니시스, KCP 등이 있습니다.

    PG사는 카드사와 직접 계약하는 대신, PG사 하나와 계약하면 모든 카드사 결제를 처리해줍니다.

    실수 1 — 결제 성공과 실제 결제 완료를 같다고 보는 것

    가장 흔하고 가장 위험한 실수입니다.

    결제 플로우는 이렇습니다:

    1. 사용자가 결제 버튼 클릭
    2. PG사 결제창 열림
    3. 사용자가 카드 정보 입력 및 결제
    4. PG사가 앱에 “성공” 콜백 전송
    5. 앱 서버에서 PG사에 결제 검증 요청
    6. 검증 완료 후 주문 처리

    5번을 빠뜨리는 경우가 있습니다. 콜백이 조작되거나 중간에 끊기면 “결제는 했는데 주문이 안 됐어요” 또는 반대로 “결제 안 했는데 주문이 됐어요” 상황이 생깁니다.

    반드시: 클라이언트 콜백만으로 주문을 처리하지 말고, 서버 사이드에서 PG사 API를 통해 결제 상태를 검증해야 합니다.

    실수 2 — 취소/환불 로직을 나중에 생각하는 것

    결제 개발 시 “일단 결제되게만 하자”고 생각하고, 취소와 환불은 나중에 붙이는 경우가 많습니다. 이것이 나중에 큰 공수를 만듭니다.

    취소/환불의 복잡한 케이스들:

    • 주문 후 배송 전 취소 vs 배송 후 반품 취소
    • 부분 취소 (10개 중 3개만 취소)
    • 포인트로 일부 결제 후 취소 시 포인트 환원
    • 쿠폰 사용 후 취소 시 쿠폰 재발급 여부
    • 결제 후 30일 이상 지난 건의 취소 (일부 PG사 정책상 제한)

    뉴트리 3.3 프로젝트에서는 “원료 블렌딩 커스터마이징” 제품이라는 특성 때문에 부분 취소와 제작 시작 후 취소 처리가 특히 복잡했습니다.

    실수 3 — 이중결제 방지를 생각하지 않는 것

    사용자가 결제 버튼을 연속으로 빠르게 누르거나, 네트워크 지연으로 응답이 늦어 재시도하는 경우, 같은 주문에 결제가 두 번 되는 상황이 생길 수 있습니다.

    방지 방법:

    • 결제 버튼을 한 번 누르면 즉시 비활성화
    • 서버 사이드에서 주문 ID 중복 체크
    • Idempotency Key(멱등성 키)를 PG사 API 호출 시 전달

    실수 4 — 모바일 결제창 테스트 부족

    PG사 결제창은 PC 브라우저, iOS Safari, Android Chrome에서 각각 다르게 동작합니다.

    • iOS에서는 팝업 결제창이 기본적으로 차단됩니다. 별도 처리가 필요합니다.
    • 인앱 브라우저(카카오톡, 네이버 앱 내부)에서 결제창 호환성 문제가 자주 발생합니다.
    • Android에서 결제 후 앱으로 돌아오는 딥링크 처리가 누락되는 경우가 있습니다.

    반드시 실제 기기에서, 다양한 브라우저/앱 환경에서 테스트해야 합니다.

    실수 5 — 결제 실패 케이스 UI를 만들지 않는 것

    결제 실패는 다양한 이유로 발생합니다.

    • 카드 한도 초과
    • 잘못된 비밀번호
    • 카드사 시스템 점검
    • 네트워크 오류
    • 사용자가 결제창에서 뒤로 가기

    각 케이스마다 사용자에게 명확한 안내가 필요합니다. “결제에 실패했습니다”만 보여주는 것은 불충분합니다. 왜 실패했는지, 어떻게 해야 하는지를 알려줘야 이탈을 줄입니다.

    B2B 결제의 특수성 — 유통닷컴 케이스

    유통닷컴은 기업 간 거래(B2B) 플랫폼입니다. B2B 결제는 B2C와 다릅니다.

    • 무통장 입금: 기업들은 카드보다 계좌이체나 무통장 입금을 선호합니다. 입금 확인 자동화가 필요합니다.
    • 세금계산서 발급: B2B 거래에서 세금계산서 발급은 필수입니다. 전자세금계산서 API 연동이 필요합니다.
    • 후불 결제: 거래 규모가 크면 선결제가 아닌 후불 결제를 요구하는 경우가 있습니다. 외상 한도 관리 로직이 필요합니다.
    • 사업자 인증: 사업자등록번호 인증으로 실제 사업체임을 확인해야 합니다.

    PG사 선택 기준

    국내에서 자주 쓰는 PG사들의 특성:

    PG사특징
    토스페이먼츠개발자 친화적 문서, 빠른 지원
    나이스페이오래된 업체, 다양한 결제 수단
    KG이니시스전통 PG사, 기업 고객 많음
    KCP대기업 계열, 안정성 높음

    소규모 프로젝트라면 토스페이먼츠를 추천합니다. 개발 문서가 잘 되어있고 개발자 커뮤니티 지원이 좋습니다.

    마치며

    결제 시스템은 “돈이 오가는” 가장 민감한 기능입니다. 오류 하나가 직접적인 금전 손실로 이어집니다.

    개발 초기부터 결제 플로우의 모든 케이스 — 성공, 실패, 취소, 환불, 부분 취소, 이중결제 — 를 시나리오로 문서화하고, 각 케이스마다 충분한 테스트를 진행해야 합니다.