返回模板
Paddle 订阅入门模板
Paddle 订阅入门模板,基于 Next.js、Supabase 认证和账单管理。
Paddle 订阅演示
这是一个展示登录、注册和订阅功能的演示应用程序,使用EdgeOne Pages和Supabase身份验证。
特点
- 通过Supabase进行用户身份验证(登录/注册)
- 电子邮件验证流程
- 不同定价层的订阅计划
- 订阅管理
- 为订阅用户提供的受保护的仪表盘
技术栈
- 框架: Next.js(全栈开发)
- 调试/部署工具: EdgeOne CLI
- 组件: 使用shadcn/ui的自定义组件
- 样式: Tailwind CSS
- 后端: EdgeOne Node Functions用于API
- 身份验证: Supabase身份验证
- 数据库: Supabase(PostgreSQL)
入门
先决条件
- Node.js 18+ 和 npm
- Supabase账户和项目
Supabase 设置
- 在https://supabase.com创建一个新的Supabase项目
- 在你的Supabase仪表盘中,转到身份验证 > 设置,并:
- 配置电子邮件身份验证提供商
- 如果需要,启用“确认电子邮件”功能
- 从项目设置 > API获取你的Supabase URL和API密钥
Paddle 设置
Paddle 设置
- 在 https://paddle.com 创建一个新的 Paddle 账户
- 在你的 Paddle 控制面板中,找到你的产品并创建一个新的产品
- 获取你的 Paddle API 密钥
Paddle 产品设置
- 在你的 Paddle 控制面板中,找到你的产品并点击 "编辑"
- 在 "价格" 选项卡中,设置你的产品的价格和订阅计划
- 在 "Webhook" 选项卡中,设置你的 Webhook URL 为
https://yourdomain.com/api/paddle/webhook
安装
- 克隆存储库:
git clone https://github.com/yourusername/paddle-subscription-demo.git
cd paddle-subscription-demo
- 安装依赖项:
npm install
开发
环境变量
# Supabase 配置
SUPABASE_URL=https://xxxxxx.supabase.co
SUPABASE_ANON_KEY=xxxxxxxx
SUPABASE_SERVICE_ROLE_KEY=xxxxxxxxxx
# Paddle 配置
NEXT_PUBLIC_PADDLE_ENVIRONMENT=sandbox
PADDLE_API_KEY=pdl_sdbx_apikey_xxxxxx
NEXT_PUBLIC_PADDLE_CLIENT_TOKEN=test_xxxxxxx
PADDLE_WEBHOOK_SECRET=pdl_ntfset_xxxxxxxxx
获取方式:
| 变量 | 用途 | 获取方式 |
|---|---|---|
| SUPABASE_URL | Supabase 请求地址 | Supabase Dashboard > Project Settings > Data API选项卡内获取 |
| SUPABASE_ANON_KEY | 发起 Supabase 请求时使用的公钥 | Supabase Dashboard > Project Settings > Data API选项卡内获取 |
| SUPABASE_SERVICE_ROLE_KEY | 发起非公开 Supabase 请求时使用的密钥 | Supabase Dashboard > Project Settings > Data API选项卡内获取 |
| NEXT_PUBLIC_PADDLE_ENVIRONMENT | Paddle 项目环境 | 'production' 或 'sandbox' |
| PADDLE_API_KEY | 函数与 Paddle 交互的 的 API Key | Paddle > Developer tools > Authentication 下创建 |
| NEXT_PUBLIC_PADDLE_CLIENT_TOKEN | 客户端使用的 Key,用于前端与 Paddle 交互。 | Paddle > Developer tools > Authentication 下创建 |
| PADDLE_WEBHOOK_SECRET | 给 Webhook 鉴别请求来源,保证安全性的密钥。 | Paddle > Developer tools > Notifications 下创建。 |
本地开发
- 本地开发调试 Next.js + Node Functions 全栈项目,如果还没安装 EdgeOne CLI,请先安装
edgeone pages dev
- 在浏览器中打开http://localhost:8088,查看应用程序。
项目结构
/src- Next.js前端代码/app- Next.js应用目录/components- React组件/lib- 实用函数
/node-functions- EdgeOne Node Functions用于后端API/auth- 与Supabase集成的身份验证API/subscription- 订阅API(订阅、状态、取消)/lib- EdgeOne Node Functions共享的实用工具
数据库设计
在生产环境中,你将扩展Supabase数据库,包括:
subscriptions表 - 存储订阅信息plans表 - 存储计划详细信息
部署
许可证
本项目根据MIT许可证进行授权 - 详情请见LICENSE文件。