概述
Astro 最小化模板提供了一个现成的起点,用于将 Dodo Payments 集成到您的 Astro 应用程序中。此模板包括结账会话、Webhook 处理、客户门户和现代 UI 组件,帮助您快速开始接受付款。这个样板项目使用 Astro 5、TypeScript、Tailwind CSS 4 和
@dodopayments/astro 适配器。特性
- Quick Setup - 在 5 分钟内开始
- Payment Integration - 使用
@dodopayments/astro的预配置结账流程 - Modern UI - 使用 Tailwind CSS 的清爽暗色定价页面
- Webhook Handler - 可直接使用的支付事件 webhook 端点
- Customer Portal - 一键订阅管理
- TypeScript - 使用精简、聚焦的类型定义,完全类型化
- Pre-filled Checkout - 演示如何传递客户数据以提升用户体验
先决条件
在开始之前,请确保您拥有:- Node.js LTS 版本(Astro 5 所需)
- Dodo Payments 账户(从仪表板访问 API 和 Webhook 密钥)
快速开始
Get API Credentials
在 Dodo Payments 注册,然后在仪表板中获取凭据:
- API 密钥: 仪表板 → 开发者 → API 密钥
- Webhook 密钥: 仪表板 → 开发者 → Webhooks
Run the Development Server
项目结构
自定义
更新产品信息
编辑src/lib/products.ts 可修改:
- 产品 ID(来自 Dodo 仪表板)
- 价格
- 功能
- 描述
预填充客户数据
在src/components/ProductCard.astro 中,将硬编码值替换为您的实际用户数据:
更新客户门户
在src/components/Header.astro 中,将硬编码的客户 ID 替换为来自您的认证系统或数据库的实际客户 ID:
Webhook 事件
该样板示例展示了如何在src/pages/api/webhook.ts 中处理 webhook 事件:
onSubscriptionActive- 在订阅变为活跃时触发onSubscriptionCancelled- 在订阅取消时触发
部署
此模板使用静态输出和按需渲染的 API 路由。您需要为您的部署平台安装一个适配器:| 平台 | 指南 |
|---|---|
| Vercel | 部署到 Vercel |
| Netlify | 部署到 Netlify |
| Cloudflare | 部署到 Cloudflare |
更新 Webhook URL
部署后,在 Dodo Payments 仪表板 中更新您的 Webhook URL:DODO_PAYMENTS_WEBHOOK_KEY 环境变量,使其与已部署域名的 webhook 签名密钥相匹配。
故障排除
Module not found or build errors
Module not found or build errors
删除
node_modules 并重新安装依赖项:Checkout redirect fails
Checkout redirect fails
常见原因:
- 无效的产品 ID - 请确认它在您的 Dodo 仪表板中存在
.env中的 API 密钥或环境设置错误- 查看浏览器控制台和终端的错误
Webhooks not receiving events
Webhooks not receiving events
Customer portal link doesn't work
Customer portal link doesn't work
在
src/components/Header.astro 中将硬编码的 CUSTOMER_ID 替换为来自 Dodo 仪表板的实际客户 ID。或者整合您的认证系统和数据库,动态获取客户 ID。Build fails with adapter error
Build fails with adapter error
该样板使用静态输出结合按需 API 路由。部署时需要安装适配器:详见 Astro 的部署指南 获取详细信息。
了解更多
支持
需要有关模板的帮助吗?- 加入我们的 Discord 社区 进行提问和讨论
- 查看 GitHub 仓库 以获取问题和更新
- 联系我们的 支持团队 寻求帮助