# 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 ### 后端启动 1. 进入后端目录: ```bash cd NBATransfer-backend ``` 2. 安装依赖: ```bash pip install -r requirements.txt ``` 3. 配置环境变量(可选): 创建 `.env` 文件并配置以下变量: ```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 ``` 4. 运行后端: ```bash python app.py ``` 或者使用批处理文件(Windows): ```bash 启动后端.bat ``` 后端服务将在 `http://localhost:5000` 启动 ### 前端启动 1. 进入前端目录: ```bash cd NBATransfer-frontend ``` 2. 安装依赖: ```bash npm install ``` 3. 配置环境变量(可选): 创建 `.env` 文件: ```env VITE_API_URL=http://localhost:5000/api ``` 4. 运行前端: ```bash npm run dev ``` 或者使用批处理文件(Windows): ```bash 启动前端.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 /` - 获取订单详情 - `POST /notify/` - 支付通知(测试用) ### API 服务 `/api/service` - `POST /text-to-image` - 文生图 API - `GET /models` - 获取可用模型 - `GET /pricing` - 获取价格信息 - `GET /call/` - 获取 API 调用详情 ### API 密钥 `/api/apikey` - `GET /list` - 获取 API 密钥列表 - `POST /create` - 创建 API 密钥 - `PUT //toggle` - 启用/禁用密钥 - `DELETE /` - 删除密钥 ### V1 API `/v1` - `POST /chat/completions` - 聊天完成接口 - `POST /images/generations` - 图片生成接口 ### 管理员 `/api/admin` - `GET /users` - 获取用户列表 - `GET /users/` - 获取用户详情 - `POST /users//toggle-status` - 启用/禁用用户 - `POST /users//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 元/张 ## 开发说明 ### 添加新的路由 **后端**: 1. 在 `routes/` 目录下创建新的蓝图文件 2. 在 `app.py` 中注册蓝图 **前端**: 1. 在 `src/api/modules/` 下创建 API 模块 2. 在 `src/pages/` 下创建页面组件 3. 在 `src/router/` 中配置路由 ### 数据库迁移 ```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"] ``` ### 前端部署 ```bash npm run build ``` 构建产物在 `dist/` 目录,可以部署到 Nginx、Vercel、Netlify 等平台。 ## 注意事项 1. ⚠️ 生产环境请修改所有默认密钥 2. ⚠️ 配置实际的邮件服务器 3. ⚠️ 接入真实的支付接口 4. ⚠️ 配置 HTTPS 5. ⚠️ 定期备份数据库 6. ⚠️ 设置合适的 CORS 策略 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request!