Checkout Handler
Express 앱에 Dodo Payments 체크아웃을 통합합니다.
Customer Portal
고객이 구독 및 세부 정보를 관리할 수 있도록 허용합니다.
Webhooks
Dodo Payments 웹훅 이벤트를 수신하고 처리합니다.
설치
1
Install the package
프로젝트 루트에서 다음 명령어를 실행하세요:
2
Set up environment variables
프로젝트 루트에
.env 파일을 생성하세요:라우트 핸들러 예제
- Checkout Handler
- Customer Portal Handler
- Webhook Handler
이 핸들러를 사용하여 Express 앱에 Dodo Payments 체크아웃을 통합하세요. 정적(GET), 동적(POST), 세션(POST) 결제 흐름을 모두 지원합니다.
체크아웃 라우트 핸들러
Dodo Payments는 웹사이트에 결제를 통합하기 위한 세 가지 유형의 결제 흐름을 지원하며, 이 어댑터는 모든 결제 흐름을 지원합니다.
- 정적 결제 링크: 빠르고 코드 없이 결제를 수집할 수 있는 즉시 공유 가능한 URL입니다.
- 동적 결제 링크: API 또는 SDK를 사용하여 사용자 정의 세부정보로 결제 링크를 프로그래밍 방식으로 생성합니다.
- 체크아웃 세션: 미리 구성된 제품 장바구니 및 고객 세부정보로 안전하고 사용자 정의 가능한 체크아웃 경험을 생성합니다.
Static Checkout (GET)
Static Checkout (GET)
지원되는 쿼리 매개변수
제품 식별자(예:
?productId=pdt_nZuwz45WAs64n3l07zpQR).제품 수량.
고객의 전체 이름.
고객의 이름.
고객의 성.
고객의 이메일 주소.
고객의 국가.
고객의 주소 라인.
고객의 도시.
고객의 주/도.
고객의 우편번호.
전체 이름 필드를 비활성화합니다.
이름 필드를 비활성화합니다.
성 필드를 비활성화합니다.
이메일 필드를 비활성화합니다.
국가 필드를 비활성화합니다.
주소 라인 필드를 비활성화합니다.
도시 필드를 비활성화합니다.
주 필드를 비활성화합니다.
우편번호 필드를 비활성화합니다.
결제 통화를 지정합니다(예:
USD).통화 선택기를 표시합니다.
결제 금액을 지정합니다(예:
1000은 $10.00입니다).할인 필드를 표시합니다.
metadata_로 시작하는 모든 쿼리 매개변수는 메타데이터로 전달됩니다.응답 형식
정적 체크아웃은 체크아웃 URL이 포함된 JSON 응답을 반환합니다:Dynamic Checkout (POST)
Dynamic Checkout (POST)
- POST 요청의 JSON 본문으로 파라미터를 전송하세요.
- 일회성 결제와 정기 결제 모두를 지원합니다.
- 지원되는 POST 본문 필드 전체 목록은 다음을 참조하세요:
응답 형식
동적 체크아웃은 체크아웃 URL이 포함된 JSON 응답을 반환합니다:Checkout Sessions (POST)
Checkout Sessions (POST)
체크아웃 세션은 일회성 구매 및 구독 모두에 대해 완전한 커스터마이징 제어를 제공하면서 전체 결제 흐름을 처리하는 보다 안전한 호스티드 체크아웃 환경을 제공합니다.자세한 내용과 지원되는 필드의 전체 목록은 체크아웃 세션 통합 가이드를 참조하세요.
응답 형식
체크아웃 세션은 체크아웃 URL이 포함된 JSON 응답을 반환합니다:고객 포털 라우트 핸들러
고객 포털 라우트 핸들러는 Dodo Payments 고객 포털을 Express 애플리케이션에 원활하게 통합할 수 있도록 합니다.쿼리 매개변수
포털 세션을 위한 고객 ID(예:
?customer_id=cus_123).true로 설정하면 고객에게 포털 링크를 이메일로 전송합니다.웹훅 라우트 핸들러
- 메서드: POST 요청만 지원됩니다. 다른 메서드는 405를 반환합니다.
- 서명 검증:
webhookKey를 사용하여 웹훅 서명을 검증합니다. 검증 실패 시 401을 반환합니다. - 페이로드 검증: Zod로 검증됩니다. 잘못된 페이로드에 대해 400을 반환합니다.
- 오류 처리:
- 401: 잘못된 서명
- 400: 잘못된 페이로드
- 500: 검증 중 내부 오류
- 이벤트 라우팅: 페이로드 유형에 따라 적절한 이벤트 핸들러를 호출합니다.