Files
NBATransfer/NBATransfer-backend/后端文档.md
2025-12-14 15:40:49 +08:00

178 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Nano Banana API 中转平台 - 后端
基于 Flask 的 Nano Banana API 中转购买平台后端服务。
## 功能特性
- 📧 邮箱注册登录系统
- 💰 用户余额管理
- 💳 支付接口(支付宝/微信支付)
- 🎨 Nano Banana 文生图 API 中转
- 📊 用户统计和订单管理
- 🔐 JWT 身份认证
- 👨‍💼 管理员后台
## 技术栈
- Flask 3.0
- SQLite 数据库
- Flask-SQLAlchemy ORM
- Flask-JWT-Extended 认证
- Flask-CORS 跨域支持
- Flask-Mail 邮件服务
## 快速开始
### 1. 安装依赖
```bash
pip install -r requirements.txt
```
### 2. 配置环境变量
复制 `.env.example``.env` 并修改配置:
```bash
copy .env.example .env
```
必需配置项:
- `SECRET_KEY`: Flask 密钥
- `JWT_SECRET_KEY`: JWT 密钥
- `NANO_BANANA_API_KEY`: Nano Banana API 密钥
- `MAIL_USERNAME`: 邮箱用户名
- `MAIL_PASSWORD`: 邮箱密码
### 3. 运行应用
```bash
python app.py
```
服务将在 http://localhost:5000 启动
### 4. 默认管理员账号
- 邮箱: 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` - 文生图API
- `GET /models` - 获取可用模型
- `GET /pricing` - 获取价格信息
- `GET /call/<call_id>` - 获取API调用详情
### 管理员 `/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、费用、错误信息
## 开发说明
### 添加新的路由
1.`routes/` 目录下创建新的蓝图文件
2.`app.py` 中注册蓝图
### 数据库迁移
```bash
# 进入 Python shell
python
>>> from app import create_app
>>> from models import db
>>> app = create_app()
>>> with app.app_context():
... db.create_all()
```
## 部署建议
### 使用 Gunicorn (生产环境)
```bash
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
```
### 使用 Docker
```dockerfile
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"]
```
## 注意事项
1. 生产环境请修改所有默认密钥
2. 配置实际的邮件服务器
3. 接入真实的支付接口
4. 配置 HTTPS
5. 定期备份数据库
## 许可证
MIT License