跳转到主要内容
Dodo Payments 提供官方框架适配器,简化支付集成。每个适配器都旨在与您的框架约定无缝协作,提供结账、客户门户和 webhook 处理功能。
框架适配器让您在不到 10 行代码内集成 Dodo Payments。它们自动处理身份验证、请求解析和响应格式化。

可用框架适配器

选择与您的框架匹配的适配器:

核心功能

所有框架适配器都提供以下内置功能:
功能说明
结账处理程序支持静态、动态和基于会话的结账流程
客户门户用于订阅和计费管理的预构建处理程序
Webhook 处理程序具有类型化事件处理程序的安全签名验证
环境配置通过环境变量进行简单设置
类型安全支持完整 TypeScript,并提供类型化有效负载

快速开始

通过三个步骤即可开始使用任意框架适配器:
1

Install the Adaptor

使用你的包管理器安装针对框架的适配器:
npm install @dodopayments/nextjs
2

Configure Environment Variables

将 Dodo Payments 凭据添加到你的环境中:
DODO_PAYMENTS_API_KEY=your-api-key
DODO_PAYMENTS_WEBHOOK_KEY=your-webhook-secret
DODO_PAYMENTS_RETURN_URL=https://yourdomain.com/checkout/success
DODO_PAYMENTS_ENVIRONMENT="test_mode" # or "live_mode"
切勿将 .env 文件或密钥提交到版本控制。
3

Create Route Handlers

设置结账、客户门户和 Webhook 路由:
// app/checkout/route.ts
import { Checkout } from "@dodopayments/nextjs";

export const GET = Checkout({
  bearerToken: process.env.DODO_PAYMENTS_API_KEY,
  returnUrl: process.env.DODO_PAYMENTS_RETURN_URL,
  environment: process.env.DODO_PAYMENTS_ENVIRONMENT,
});
你现在已准备好处理支付!访问各适配器页面获取详细指南和所有可用选项。

结账流程类型

所有适配器均支持三种结账流程类型:
使用静态结账处理简单、可共享的支付链接。将产品 ID 作为查询参数传递:
/api/checkout?productId=pdt_xxx&quantity=1
支持通过查询参数进行可选的客户预填和定制。
使用动态结账可编程创建具有自定义信息的支付:
{
  "product_id": "pdt_xxx",
  "customer": {
    "email": "customer@example.com",
    "name": "John Doe"
  },
  "quantity": 1
}
支持一次性支付和订阅。
使用结账会话,获得具备购物车支持的最灵活结账体验:
{
  "product_cart": [
    { "product_id": "pdt_xxx", "quantity": 1 },
    { "product_id": "pdt_yyy", "quantity": 2 }
  ],
  "customer": {
    "email": "customer@example.com"
  }
}
结账会话指南 中了解更多。

Webhook 事件处理

所有适配器均提供具有细粒度事件回调的类型安全 Webhook 处理:
Webhooks({
  webhookKey: process.env.DODO_PAYMENTS_WEBHOOK_KEY,
  onPayload: async (payload) => {
    // Handle any webhook event
  },
  onPaymentSucceeded: async (payload) => {
    // Handle successful payments
  },
  onSubscriptionActive: async (payload) => {
    // Handle new subscriptions
  },
  // ... 20+ event types supported
});
所有 Webhook 处理程序自动验证签名并使用 Zod 模式校验有效载荷。无效请求将以适当的错误码拒绝。

选择合适的适配器

框架适合运行时
Next.jsApp Router 的全栈 React 应用Node.js,Edge
Nuxt全栈 Vue.js 应用Node.js
ExpressREST API 和传统 Node.js 应用Node.js
Fastify高性能 APINode.js
Hono边缘部署、Cloudflare WorkersEdge,Node.js
Astro带服务器端点的内容站点Node.js,Edge
SvelteKit全栈 Svelte 应用Node.js
Remix具有嵌套路由的全栈 ReactNode.js
TanStack Start类型安全的全栈 ReactNode.js
Better Auth已在使用 Better Auth 的应用多种
Convex使用 Convex 作为后端的应用Convex 运行时
Bun原生 Bun 服务器应用Bun

获取帮助

需要框架适配器方面的帮助?