피드로 돌아가기
Dev.toBackend
원문 읽기
Stripe Checkout 기반의 보안 결제 flow 및 Ride-Payment 상태 분리 설계
Stripe Payment and Processing
AI 요약
Context
Ride-sharing 플랫폼 내 결제 프로세스의 보안성 확보와 신뢰할 수 있는 결제 상태 추적 필요성 대두. 카드 정보 직접 관리로 인한 보안 리스크와 Ride 상태-결제 상태 간의 의존성 제거를 통한 시스템 복잡도 완화가 핵심 과제임.
Technical Solution
- Stripe Checkout 도입을 통한 민감 카드 정보 저장 배제 및 PCI-DSS 준수 비용 절감
- Backend Route를 통한 Checkout Session 생성 및 Stripe-hosted URL 반환으로 프론트엔드 결제 로직 단순화
- Ride ID 및 Rider ID를 Session Metadata에 포함시켜 결제 데이터와 특정 Ride 객체 간의 1:1 매핑 구조 설계
- RidePayments 테이블을 구축하여 Session ID, Payment Intent ID 기반의 결제 이력 및 상태 추적 체계 마련
- Ride 상태와 Payment 상태를 독립적으로 관리하는 State Separation 설계를 통해 비동기 결제 상황에서의 시스템 정합성 유지
- $5.00 고정 금액 기반의 Demo Checkout Screen 구현으로 결제 설정 유효성 사전 검증 로직 적용
실천 포인트
1. 외부 결제 게이트웨이 활용 시 Metadata 필드를 통해 내부 도메인 ID(Ride ID 등)를 연결하고 있는가?
2. 비즈니스 상태(Ride Status)와 결제 상태(Payment Status)를 분리하여 설계함으로써 상태 전이의 복잡성을 제어하고 있는가?
3. 민감 데이터 저장을 피하기 위해 Hosted Checkout Flow와 같은 위임 모델을 검토하였는가?
4. Webhook 도입 전, Redirect 기반의 상태 업데이트 시 발생할 수 있는 데이터 유실 가능성을 고려했는가?