@dodopayments scope 中的 npm package。这些 packages 使用 @dodopayments/core 进行 checkout validation、Dodo Payments API requests、webhook payload validation 和 typed event callbacks。
如果希望 coding agent 为你添加 adaptor,请安装 Agent Plugin。
可用的 Framework Adaptors
选择与你的 framework 匹配的 adaptor:Next.js
Nuxt
Express
Fastify
Hono
Astro
SvelteKit
Remix
TanStack Start
Better Auth
Convex
Bun
核心功能
这些 route handler adaptors 共享以下功能:
Better Auth plugin 和 Convex component 通过各自的 APIs 提供相同功能。有关差异,请参阅它们各自的页面。
快速开始
分三步设置 route handler adaptor。1
Install the Adaptor
安装适用于你的 framework 的 package:
- Next.js
- Nuxt
- Express
- Hono
- Astro
- SvelteKit
2
Configure Environment Variables
将 Dodo Payments credentials 添加到你的 environment 中。在 dashboard 的 Developer → API Keys 下创建 API key,并在 Developer → Webhooks 下创建 webhook secret。test mode API key 仅适用于 如果不传入 environment,adaptor 将使用
test_mode。live_mode。3
Create Route Handlers
创建 checkout route。customer portal 和 webhook routes 遵循相同模式:
- Next.js
- Express
- Hono
你的 checkout route 现在会返回 checkout URL。每个 adaptor 的页面都会介绍 customer portal 和 webhook handlers,并列出所有 options。
Checkout Flow Types
Route handler adaptors 支持三种 checkout flow types。Better Auth plugin 支持 checkout sessions 和已弃用的 dynamic checkout。Convex component 仅支持 checkout sessions。Static Checkout (GET)
Static Checkout (GET)
Static checkout 为单个 product 返回 payment link,因此你可以分享该链接或将用户重定向到该链接。将 product ID 作为 query parameter 传入:handler 会检查 product 是否存在,并将链接作为
checkout_url 返回。可选 query parameters 可预填 customer details 并控制 checkout form。Dynamic Checkout (POST)
Dynamic Checkout (POST)
Dynamic checkout 根据包含自定义 details 的 JSON body 创建 payment link。它同时支持一次性付款和订阅。根据 product type,它会调用已弃用的
billing 和 customer 为必填项:POST /payments 或 POST /subscriptions endpoint,因此新集成应使用 checkout sessions。Checkout Sessions (POST)
Checkout Sessions (POST)
Checkout sessions 是推荐的流程。它们提供最多的 options,并接受包含多个 products 的 cart:有关所有受支持的 fields,请参阅 Checkout Sessions Guide。
Webhook Event Handling
每个 route handler adaptor 都会导出一个Webhooks handler。它接收你的 webhook secret,以及针对单个 event types 的可选 typed callbacks。onPayload 会针对每个 event 运行:
webhooks() 中接受相同的 callbacks,Convex component 则在 createDodoWebhookHandler 中接受它们。
每个 webhook handler 都会使用 Standard Webhooks library 验证
webhook-id、webhook-signature 和 webhook-timestamp headers,然后使用 Zod schemas 验证 payload。无效 requests 会在 callbacks 运行前以 error status 被拒绝。选择合适的 Adaptor
获取帮助
如果需要框架适配器方面的帮助:- Discord:在社区服务器中提问。
- Email:联系 support@dodopayments.com。
- GitHub:在dodo-adapters 仓库中提交 issue,该仓库包含所有适配器。
- Documentation:请参阅 API 参考。