@dodopayments scope의 npm package입니다. 이 package는 checkout validation, Dodo Payments API requests, webhook payload validation 및 typed event callbacks에 @dodopayments/core를 사용합니다.
코딩 에이전트가 대신 어댑터를 추가하도록 하려면 Agent Plugin을 설치하세요.
사용 가능한 프레임워크 어댑터
사용 중인 프레임워크에 맞는 어댑터를 선택하세요:Next.js
App Router에서 checkout, customer portal 및 webhook을 처리하는 route handler입니다.
Nuxt
full-stack Vue framework인 Nuxt 3를 위한 server route handler입니다.
Express
Node.js 앱에서 Express 5 route를 처리하는 request handler입니다.
Fastify
plugin architecture를 사용하는 Node.js framework인 Fastify 5를 위한 route handler입니다.
Hono
Cloudflare Workers, 기타 edge runtime 및 Node.js를 위한 web framework인 Hono 4의 route handler입니다.
Astro
content-focused web framework인 Astro 4 및 5를 위한 server endpoint handler입니다.
SvelteKit
full-stack Svelte framework인 SvelteKit 2를 위한 server route handler입니다.
Remix
full-stack React framework인 Remix 2를 위한 loader 및 action handler입니다.
TanStack Start
type-safe full-stack React framework인 TanStack Start를 위한 server route handler입니다.
Better Auth
checkout, portal, usage 및 webhook endpoint를 추가하는 Better Auth authentication framework용 plugin이며, sign-up 시 customer를 생성할 수 있습니다.
Convex
checkout 및 customer portal action과 webhook HTTP action을 제공하는 Convex backend용 component입니다.
Bun
checkout, customer portal 및 webhook을 위한 native
Bun.serve() handler입니다.핵심 기능
route handler 어댑터는 다음 기능을 공유합니다:
Better Auth plugin과 Convex component는 각자의 API를 통해 동일한 기능을 제공합니다. 차이점은 각 페이지를 참조하세요.
빠른 시작
세 단계로 route handler 어댑터를 설정하세요.1
Install the Adaptor
프레임워크에 맞는 package를 설치하세요:
- Next.js
- Nuxt
- Express
- Hono
- Astro
- SvelteKit
2
Configure Environment Variables
환경에 Dodo Payments credential을 추가하세요. dashboard의 Developer → API Keys에서 API key를, Developer → Webhooks에서 webhook secret을 생성하세요. test mode API key는 environment를 전달하지 않으면 어댑터는
test_mode에서만 작동합니다.live_mode를 사용합니다.3
Create Route Handlers
checkout route를 생성하세요. customer portal 및 webhook route도 같은 패턴을 따릅니다:
- Next.js
- Express
- Hono
이제 checkout route가 checkout URL을 반환합니다. 각 어댑터 페이지에서는 customer portal 및 webhook handler를 설명하고 모든 option을 나열합니다.
Checkout Flow Type
route handler 어댑터는 세 가지 checkout flow type을 지원합니다. Better Auth plugin은 checkout session과 deprecated dynamic checkout을 지원합니다. Convex component는 checkout session만 지원합니다.Static Checkout (GET)
Static Checkout (GET)
Static checkout은 하나의 product에 대한 payment link를 반환하므로 이를 공유하거나 redirect할 수 있습니다. query parameter로 product ID를 전달하세요:handler는 product가 존재하는지 확인하고 link를
checkout_url로 반환합니다. 선택적 query parameter를 사용하면 customer detail을 미리 입력하고 checkout form을 제어할 수 있습니다.Dynamic Checkout (POST)
Dynamic Checkout (POST)
Dynamic checkout은 사용자 지정 detail이 포함된 JSON body에서 payment link를 생성합니다. one-time payment와 subscription을 모두 지원합니다. product type에 따라 deprecated
billing 및 customer가 필요합니다:POST /payments 또는 POST /subscriptions endpoint를 호출하므로, 새로운 통합에는 checkout session을 사용하세요.Checkout Sessions (POST)
Checkout Sessions (POST)
Checkout session은 권장되는 flow입니다. 가장 많은 option을 제공하며 여러 product가 포함된 cart를 허용합니다:지원되는 모든 field는 Checkout Sessions Guide를 참조하세요.
Webhook Event 처리
모든 route handler 어댑터는Webhooks handler를 export합니다. 이 handler는 webhook secret과 개별 event type을 위한 선택적 typed callback을 받습니다. onPayload는 모든 event에서 실행됩니다:
webhooks()에서 동일한 callback을 받고, Convex component는 createDodoWebhookHandler에서 이를 받습니다.
각 webhook handler는 Standard Webhooks library를 사용하여
webhook-id, webhook-signature 및 webhook-timestamp header를 verify한 다음 Zod schema로 payload를 validate합니다. 잘못된 request는 callback이 실행되기 전에 error status와 함께 거부됩니다.적합한 어댑터 선택
도움말
framework adaptor에 대한 도움이 필요한 경우:- Discord: 커뮤니티 서버에서 질문하세요.
- 이메일: support@dodopayments.com으로 문의하세요.
- GitHub: 모든 adaptor가 포함된 dodo-adapters repository에 이슈를 등록하세요.
- 문서: API reference를 참조하세요.