Checkout Handler
Bun 서버에 Dodo Payments checkout을 통합합니다.
Customer Portal
고객이 구독 및 세부 정보를 관리할 수 있습니다.
Webhooks
Dodo Payments webhook 이벤트를 수신하고 처리합니다.
설치
1
Install the package
프로젝트 루트에서 다음 명령을 실행합니다:
2
Set up environment variables
프로젝트 루트에
.env 파일을 생성합니다:Route Handler 예시
모든 예시는
Bun.serve()를 사용하는 Bun의 네이티브 서버를 기준으로 합니다.- Checkout Handler
- Customer Portal Handler
- Webhook Handler
이 handler를 사용하여 Bun 서버에 Dodo Payments checkout을 통합합니다. 정적(GET), 동적(POST) 및 세션(POST) 결제 흐름을 지원합니다.
Checkout Route Handler
Dodo Payments는 웹사이트에 결제를 통합하기 위한 세 가지 결제 흐름을 지원하며, 이 adaptor는 모든 유형의 결제 흐름을 지원합니다.
- 정적 Payment Links: 빠르고 코드 없이 결제를 수집할 수 있는 즉시 공유 가능한 URL입니다.
- 동적 Payment Links: API 또는 SDK를 사용하여 맞춤 세부 정보가 포함된 결제 링크를 프로그래밍 방식으로 생성합니다.
- Checkout Sessions: 사전 구성된 product cart 및 customer details와 함께 안전하고 맞춤 설정 가능한 checkout 환경을 생성합니다.
Static Checkout (GET)
Static Checkout (GET)
지원되는 쿼리 매개변수
string
필수
제품 식별자(예:
?productId=pdt_xxx).integer
제품 수량.
string
고객의 전체 이름.
string
고객의 이름.
string
고객의 성.
string
고객의 이메일 주소.
string
고객의 국가.
string
고객의 주소 입력란.
string
고객의 도시.
string
고객의 주/도.
string
고객의 우편번호.
boolean
전체 이름 필드를 비활성화합니다.
boolean
이름 필드를 비활성화합니다.
boolean
성 필드를 비활성화합니다.
boolean
이메일 필드를 비활성화합니다.
boolean
국가 필드를 비활성화합니다.
boolean
주소 입력란 필드를 비활성화합니다.
boolean
도시 필드를 비활성화합니다.
boolean
주/도 필드를 비활성화합니다.
boolean
우편번호 필드를 비활성화합니다.
string
결제 통화를 지정합니다(예:
USD).boolean
통화 선택기를 표시합니다.
number
청구 금액을 주요 통화 단위로 고정합니다(예: $12.50의 경우
12.5). Pay What You Want 제품에만 해당하며, 제품의 최소 가격보다 낮으면 무시됩니다.boolean
할인 필드를 표시합니다.
string
metadata_로 시작하는 모든 쿼리 매개변수는 metadata로 전달됩니다.Response Format
정적 checkout은 checkout URL이 포함된 JSON response를 반환합니다:Dynamic Checkout (POST)
Dynamic Checkout (POST)
- POST request의 JSON body로 parameter를 전송합니다.
- 일회성 결제와 recurring payment를 모두 지원합니다.
- 지원되는 POST body field의 전체 목록은 다음을 참조하세요:
Response Format
동적 checkout은 checkout URL이 포함된 JSON response를 반환합니다:Checkout Sessions (POST)
Checkout Sessions (POST)
Checkout sessions는 일회성 구매와 구독 모두에 대해 전체 결제 흐름을 처리하며, 완전한 맞춤 설정 제어가 가능한 더욱 안전한 호스팅 checkout 환경을 제공합니다.자세한 내용과 지원되는 field의 전체 목록은 Checkout Sessions Integration Guide를 참조하세요.
Response Format
Checkout sessions는 checkout URL이 포함된 JSON response를 반환합니다:Customer Portal Route Handler
Customer Portal Route Handler를 사용하면 Bun 서버 애플리케이션에 Dodo Payments customer portal을 원활하게 통합할 수 있습니다.Query Parameters
string
필수
포털 세션의 customer ID입니다(예:
?customer_id=cus_123).boolean
true로 설정하면 customer에게 포털 link가 포함된 이메일을 전송합니다.Webhook Route Handler
- Method: POST request만 지원됩니다. 다른 method는 405를 반환합니다.
- Signature Verification:
webhookKey를 사용하여 webhook signature를 검증합니다. 검증에 실패하면 401을 반환합니다. - Payload Validation: Zod로 검증합니다. 유효하지 않은 payload에는 400을 반환합니다.
- Error Handling:
- 401: 유효하지 않은 signature
- 400: 유효하지 않은 payload
- 500: 검증 중 internal error
- Event Routing: payload type에 따라 적절한 event handler를 호출합니다.