410b2f068daa85beb5915036731d0a86a1f0e7c5
Nano Banana API 中转平台
一个完整的大模型 API 中转购买平台,支持用户注册、充值、API 调用等功能。
项目简介
本项目是一个前后端分离的 API 中转服务平台,用户可以通过注册账户、充值余额来使用 Nano Banana 文生图 API 服务。
主要功能
- 📧 邮箱注册登录系统(支持邮箱验证)
- 💰 用户余额管理和充值系统
- 💳 支付接口(支持支付宝/微信支付)
- 🎨 Nano Banana 文生图 API 中转
- 🔑 API 密钥管理
- 📊 用户统计和订单管理
- 👨💼 管理员后台
- 📱 响应式设计(支持手机端和电脑端)
技术栈
后端 (NBATransfer-backend)
- 框架: Flask 3.0
- 数据库: SQLite
- ORM: Flask-SQLAlchemy
- 认证: Flask-JWT-Extended
- 跨域: Flask-CORS
- 邮件: Flask-Mail
前端 (NBATransfer-frontend)
- 框架: React 19 + TypeScript
- 构建工具: Vite
- UI 组件库: Ant Design
- 状态管理: Zustand
- 路由: React Router
- HTTP 客户端: Axios
- 图表: Recharts
项目结构
.
├── NBATransfer-backend/ # 后端项目
│ ├── app.py # Flask 应用入口
│ ├── config.py # 配置文件
│ ├── models.py # 数据库模型
│ ├── routes/ # 路由模块
│ │ ├── auth.py # 认证相关
│ │ ├── user.py # 用户相关
│ │ ├── order.py # 订单相关
│ │ ├── api_service.py # API 服务
│ │ ├── admin.py # 管理员
│ │ ├── apikey.py # API 密钥
│ │ └── v1_api.py # V1 API 接口
│ ├── services/ # 业务逻辑层
│ ├── modelapiservice/ # 模型 API 服务
│ │ ├── DeepSeek/ # DeepSeek 服务
│ │ └── NanoBanana/ # NanoBanana 服务
│ └── requirements.txt # Python 依赖
│
├── NBATransfer-frontend/ # 前端项目
│ ├── src/
│ │ ├── api/ # API 接口定义
│ │ ├── components/ # 公共组件
│ │ ├── pages/ # 页面组件
│ │ ├── store/ # 状态管理
│ │ ├── types/ # TypeScript 类型
│ │ └── utils/ # 工具函数
│ └── package.json # Node.js 依赖
│
└── README.md # 项目说明文档
快速开始
环境要求
- Python 3.9+
- Node.js 18+
- npm 或 yarn
后端启动
- 进入后端目录:
cd NBATransfer-backend
- 安装依赖:
pip install -r requirements.txt
- 配置环境变量(可选):
创建
.env文件并配置以下变量:
SECRET_KEY=your-secret-key
JWT_SECRET_KEY=your-jwt-secret-key
DATABASE_URI=sqlite:///nba_transfer.db
MAIL_SERVER=smtp.qq.com
MAIL_PORT=465
MAIL_USE_SSL=True
MAIL_USERNAME=your-email@qq.com
MAIL_PASSWORD=your-email-password
- 运行后端:
python app.py
或者使用批处理文件(Windows):
启动后端.bat
后端服务将在 http://localhost:5000 启动
前端启动
- 进入前端目录:
cd NBATransfer-frontend
- 安装依赖:
npm install
- 配置环境变量(可选):
创建
.env文件:
VITE_API_URL=http://localhost:5000/api
- 运行前端:
npm run dev
或者使用批处理文件(Windows):
启动前端.bat
前端服务将在 http://localhost:5173 启动(Vite 默认端口)
默认账户
管理员账户
- 邮箱: admin@nba.com
- 密码: admin123
⚠️ 首次登录后请立即修改密码!
API 文档
认证相关 /api/auth
POST /register- 用户注册POST /login- 用户登录POST /refresh- 刷新令牌GET /me- 获取当前用户信息POST /change-password- 修改密码
用户相关 /api/user
GET /profile- 获取用户资料PUT /profile- 更新用户资料GET /balance- 获取账户余额GET /transactions- 获取交易记录GET /api-calls- 获取 API 调用记录GET /stats- 获取统计信息
订单相关 /api/order
POST /create- 创建充值订单GET /list- 获取订单列表GET /<order_id>- 获取订单详情POST /notify/<order_no>- 支付通知(测试用)
API 服务 /api/service
POST /text-to-image- 文生图 APIGET /models- 获取可用模型GET /pricing- 获取价格信息GET /call/<call_id>- 获取 API 调用详情
API 密钥 /api/apikey
GET /list- 获取 API 密钥列表POST /create- 创建 API 密钥PUT /<key_id>/toggle- 启用/禁用密钥DELETE /<key_id>- 删除密钥
V1 API /v1
POST /chat/completions- 聊天完成接口POST /images/generations- 图片生成接口
管理员 /api/admin
GET /users- 获取用户列表GET /users/<user_id>- 获取用户详情POST /users/<user_id>/toggle-status- 启用/禁用用户POST /users/<user_id>/adjust-balance- 调整用户余额GET /orders- 获取所有订单GET /api-calls- 获取所有 API 调用GET /stats/overview- 获取总览统计GET /stats/chart- 获取图表数据
数据库结构
用户表 (users)
- 邮箱、密码、用户名
- 余额、激活状态、管理员标识
- 邮箱验证状态
- 创建时间、更新时间
订单表 (orders)
- 订单号、用户ID、金额
- 支付方式、订单状态
- 第三方交易ID、支付时间
交易记录表 (transactions)
- 用户ID、交易类型(充值/消费/退款)
- 金额、前后余额
- 关联订单、关联API调用
API调用表 (api_calls)
- 用户ID、API类型
- 提示词、参数、状态
- 结果URL、费用、错误信息
API密钥表 (api_keys)
- 用户ID、密钥名称
- API密钥、激活状态
- 最后使用时间
验证码表 (verification_codes)
- 用户ID、邮箱
- 验证码、用途、使用状态
- 过期时间
价格策略
- 文生图 API: 0.15 元/张
开发说明
添加新的路由
后端:
- 在
routes/目录下创建新的蓝图文件 - 在
app.py中注册蓝图
前端:
- 在
src/api/modules/下创建 API 模块 - 在
src/pages/下创建页面组件 - 在
src/router/中配置路由
数据库迁移
# 进入 Python shell
python
>>> from app import create_app
>>> from models import db
>>> app = create_app()
>>> with app.app_context():
... db.create_all()
部署建议
后端部署
使用 Gunicorn (生产环境)
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
使用 Docker
FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "app:app"]
前端部署
npm run build
构建产物在 dist/ 目录,可以部署到 Nginx、Vercel、Netlify 等平台。
注意事项
- ⚠️ 生产环境请修改所有默认密钥
- ⚠️ 配置实际的邮件服务器
- ⚠️ 接入真实的支付接口
- ⚠️ 配置 HTTPS
- ⚠️ 定期备份数据库
- ⚠️ 设置合适的 CORS 策略
许可证
MIT License
贡献
欢迎提交 Issue 和 Pull Request!
Description
Languages
Python
57.2%
TypeScript
34.8%
CSS
6.6%
Batchfile
0.7%
JavaScript
0.4%
Other
0.3%