GitHub Repository
최소한의 Go + Dodo Payments 보일러플레이트
개요
Go 보일러플레이트는 Dodo Payments를 Go 백엔드와 통합하기 위한 프로덕션 준비가 완료된 시작점을 제공합니다. 이 템플릿은 체크아웃 세션 처리, 웹훅 검증, 고객 포털 통합을 포함하며, 빠르게 결제를 수락할 수 있도록 Go 모범 사례를 따릅니다.이 보일러플레이트는 Go 1.21+와 클린 아키텍처 패턴 (
cmd, internal, templates), HTML 템플릿, 그리고 dodopayments-go SDK를 활용하여 원활한 API 통합을 제공합니다.기능
- Quick Setup - 5분 이내에 시작하세요
- Payment Integration -
dodopayments-goSDK를 사용해 사전 구성된 체크아웃 흐름 - Modern UI - HTML 템플릿을 사용한 깔끔한 다크 테마 가격 페이지
- Webhook Handling - 결제 이벤트를 안전하게 검증하고 처리
- Customer Portal - 셀프 서비스 구독 관리
- Go Best Practices -
cmd,internal,templates을 활용한 클린 아키텍처 - Pre-filled Checkout - UX 향상을 위한 고객 데이터 전달 예시
전제 조건
시작하기 전에 다음을 확인하세요:- Go 1.21+
- Dodo Payments 계정 (대시보드에서 API 및 웹훅 키에 접근하기 위해)
빠른 시작
Get API Credentials
Dodo Payments에서 가입하고 대시보드에서 자격 증명을 받으세요:
- API 키: 대시보드 → 개발자 → API 키
- 웹훅 키: 대시보드 → 개발자 → 웹훅
Run the Development Server
프로젝트 구조
API 엔드포인트
보일러플레이트에는 다음과 같은 사전 구성된 엔드포인트가 포함되어 있습니다:| 엔드포인트 | 메서드 | 설명 |
|---|---|---|
/ | GET | 상품 목록을 보여주는 가격 페이지 |
/api/checkout | POST | 새 체크아웃 세션 생성 |
/api/webhook | POST | Dodo Payments 웹훅 처리 |
/api/customer-portal | POST | 고객 포털 URL 생성 |
사용자 정의
제품 정보 업데이트
internal/lib/products.go을 편집하여 다음을 수정하세요:
- Dodo 대시보드에서 가져온 상품 ID
- 가격
- 기능
- 설명
고객 데이터 사전 채우기
templates/index.html에서 하드코딩된 고객 데이터를 실제 사용자 데이터로 바꾸세요:
웹훅 이벤트
이 보일러플레이트는internal/api/webhook.go에서 웹훅 이벤트 처리 방법을 보여줍니다. 지원되는 이벤트는 다음과 같습니다:
| 이벤트 | 설명 |
|---|---|
subscription.active | 구독이 활성화될 때 트리거됩니다 |
payment.succeeded | 결제가 성공할 때 트리거됩니다 |
- 데이터베이스에서 사용자 권한 업데이트
- 확인 이메일 전송
- 디지털 제품에 대한 접근 권한 제공
- 분석 및 메트릭 추적
웹훅을 로컬에서 테스트하기
로컬 개발을 위해 ngrok와 같은 도구를 사용하여 로컬 서버를 노출하세요:배포
프로덕션 빌드
Vercel에 배포
[Docker
Dockerfile를 생성하세요:
프로덕션 고려 사항
문제 해결
Build errors or missing dependencies
Build errors or missing dependencies
Go 모듈이 제대로 다운로드되었는지 확인하세요:
Checkout session creation fails
Checkout session creation fails
일반적인 원인:
- 잘못된 상품 ID - Dodo 대시보드에 존재하는지 확인하세요
.env에 잘못된 API 키 또는 환경 설정- 자세한 오류 메시지는 서버 로그를 확인하세요
Webhooks not receiving events
Webhooks not receiving events
로컬 테스트에서는 서버를 노출시키기 위해 ngrok를 사용하세요:웹훅 URL을 Dodo dashboard에서 ngrok URL로 업데이트하세요. 올바른 웹훅 검증 키로
.env 파일도 업데이트했는지 확인하세요.Templates not loading
Templates not loading
프로젝트 루트 디렉터리에서 서버를 실행하거나, 템플릿 경로가 코드에서 올바르게 설정됐는지 확인하세요.
더 알아보기
Go SDK
Go SDK 문서 전체
Webhooks Documentation
모든 웹훅 이벤트와 모범 사례 알아보기
Checkout Sessions
체크아웃 세션 구성 심층 분석
API Reference
Dodo Payments API 문서 전체
지원
보일러플레이트에 대한 도움이 필요하신가요?- 질문 및 토론을 위해 Discord 커뮤니티에 참여하세요.
- 문제 및 업데이트를 위해 GitHub 저장소를 확인하세요.
- 지원이 필요하시면 지원 팀에게 연락하세요.