GitHub Repository
最小 Go + Dodo Payments boilerplate
概述
Go boilerplate 提供了一个生产就绪的起点,用于将 Dodo Payments 集成到您的 Go 后端中。此模板包括结账会话处理、Webhook 验证、客户门户集成,并遵循 Go 最佳实践,帮助您快速开始接受支付。此 boilerplate 使用 Go 1.21+ 和干净的架构模式 (
cmd, internal, templates),HTML 模板,以及 dodopayments-go SDK,以实现无缝的 API 集成。特性
- 快速设置 - 在 5 分钟内开始
- 支付集成 - 使用
dodopayments-goSDK 预配置的结账流程 - 现代 UI - 干净的深色主题定价页面,配有 HTML 模板
- Webhook 处理 - 安全验证和处理支付事件
- 客户门户 - 自助订阅管理
- Go 最佳实践 - 使用
cmd,internal和templates的干净架构 - 预填结账 - 演示传递客户数据以改善用户体验
先决条件
在开始之前,请确保您拥有:- Go 1.21+
- Dodo Payments 账户(以从仪表板访问 API 和 Webhook 密钥)
快速开始
1
克隆仓库
2
安装依赖
3
获取 API 凭证
在 Dodo Payments 注册并从仪表板获取您的凭证:
- API 密钥: 仪表板 → 开发者 → API 密钥
- Webhook 密钥: 仪表板 → 开发者 → Webhooks
4
配置环境变量
在根目录中创建一个 使用您的 Dodo Payments 凭证更新值:
.env 文件:.env
5
添加您的产品
使用您在 Dodo Payments 中的实际产品 ID 更新
internal/lib/products.go:6
运行开发服务器
项目结构
API 端点
该 boilerplate 包含以下预配置的端点:| 端点 | 方法 | 描述 |
|---|---|---|
/ | GET | 带有产品列表的定价页面 |
/api/checkout | POST | 创建新的结账会话 |
/api/webhook | POST | 处理 Dodo Payments Webhooks |
/api/customer-portal | POST | 生成客户门户 URL |
自定义
更新产品信息
编辑internal/lib/products.go 以修改:
- 产品 ID(来自您的 Dodo 仪表板)
- 定价
- 特性
- 描述
预填客户数据
在templates/index.html 中,用您的实际用户数据替换硬编码的客户数据:
Webhook 事件
该 boilerplate 演示了在internal/api/webhook.go 中处理 webhook 事件。支持的事件包括:
| 事件 | 描述 |
|---|---|
subscription.active | 当订阅变为活动时触发 |
payment.succeeded | 当支付成功时触发 |
- 更新数据库中的用户权限
- 发送确认电子邮件
- 提供对数字产品的访问
- 跟踪分析和指标
本地测试 Webhooks
对于本地开发,使用 ngrok 来暴露您的本地服务器:部署
为生产构建
部署到 Vercel
[Docker
创建一个Dockerfile:
生产注意事项
故障排除
构建错误或缺少依赖
构建错误或缺少依赖
确保 Go 模块已正确下载:
结账会话创建失败
结账会话创建失败
常见原因:
- 无效的产品 ID - 验证它在您的 Dodo 仪表板中存在
.env中的 API 密钥或环境设置错误- 检查服务器日志以获取详细错误消息
Webhooks 未接收事件
Webhooks 未接收事件
模板未加载
模板未加载
确保您从项目根目录运行服务器,或者确保模板路径在您的代码中正确配置。
了解更多
支持
需要有关 boilerplate 的帮助吗?- 加入我们的 Discord 社区 进行提问和讨论
- 查看 GitHub 仓库 以获取问题和更新
- 联系我们的 支持团队 寻求帮助