楠枫API计费系统稳定、清晰、可运营的 API 服务平台 项目简介楠枫API计费系统是一套完整的 API 开放平台解决方案面向第三方 API 的聚合、计费与运营管理。系统支持多层级计费模型套餐 / 点数 / 余额、上游轮询负载均衡、支付宝全产品支付电脑网站 / 手机网站 / 当面付提供用户端 API 商城、开放网关、密钥管理与管理端全功能后台。统一管理接口、Key、套餐、计费与调用日志帮助您快速搭建可运营的 API 服务平台。开源地址https://github.com/LoveNanFeng/NanFengAPI演示地址https://api.nfiii.com✨ 核心功能 API 管理与聚合完整的接口 CRUD支持 GET / POST / GET_POST 多种请求方式上游轮询负载均衡支持普通轮询ROUND_ROBIN、主备模式PRIMARY、单节点SINGLE每个上游节点可独立配置响应 JSON 字段校验如code200校验失败自动切换接口置顶与精选首页展示公开接口文档生成请求参数、返回字段、状态码、响应示例 多层级计费引擎全站套餐有效期 日调用量 QPS 限制接口套餐多规格名称 / 价格 / 天数 / 日上限 / QPS点数套餐购买点数按次消费余额直扣按接口定价实时扣费扣费优先级全站套餐 → 接口套餐 → 点数 → 余额灵活的扣费规则引擎支持按响应字段 运算符EQ / NE / GT / LT / CONTAINS判断是否计费 密钥与安全接口级INTERFACE和全站级GLOBAL两种密钥范围IP 白名单管理支持换行 / 逗号分隔滑块验证码SHA-256 工作量证明JWT 双令牌认证Access Token 30min Refresh Token 7dRedis 多层限流登录、注册验证码、API 调用 QPS / 日量 支付宝支付集成从零实现的 RSA2 签名与验签支持 PAGE电脑网站、WAP手机网站、FACE当面付扫码三种支付产品充值金额预设管理支持赠送金额订单状态追踪与支付宝异步通知回调 调用日志与数据分析全字段异步记录请求参数、上游地址、响应内容、耗时客户端 IP 归属地解析国家 / 省 / 市 / 运营商计费明细计费类型、扣费来源、扣费层级、规则快照首页概览调用趋势图、地区排行、热门 API 用户与管理邮箱 手机号阿里云短信双通道注册注册频率限制分钟 / 小时 / 天RBAC 权限模型角色 → 菜单 → 按钮权限码管理员可为用户配置指定返回自定义响应不调用上游 内容运营系统公告富文本支持置顶与每日弹窗首页滚动公告友情链接申请与审核PENDING → APPROVED / REJECTED站点配置单例管理Logo、联系方式、ICP 备案、版权️ 技术栈层次技术版本后端框架Spring Boot3.3.5语言Java17ORMMyBatis-Plus3.5.9数据库MySQL8.0缓存 / 限流Redis7.0安全Spring Security JWT (jjwt)0.12.6工具库Hutool5.8.35短信阿里云 Dypnsapi2.0.0前端框架Vue (Composition API)3.5.32构建工具Vite8.0.8UI 组件库Ant Design Vue4.2CSSTailwind CSS4.2语言TypeScript6.0状态管理Pinia3.0路由Vue Router5.0图表ECharts6.0HTTP 客户端Axios (Vben Request)1.15国际化Vue I18n11.3包管理pnpm Turborepomonorepo 系统架构┌─────────────────────────────────────────────────────────┐ │ 用户层 │ │ Web 管理端 (Vben Admin) │ API 商城 (公开) │ 移动端 │ └──────────────────────┬──────────────────────────────────┘ │ HTTP / HTTPS ▼ ┌─────────────────────────────────────────────────────────┐ │ Spring Boot 后端 │ │ ┌─────────┐ ┌──────────┐ ┌───────────┐ ┌───────────┐ │ │ │ Auth │ │ 接口管理 │ │ 套餐 / 计费│ │ 支付模块 │ │ │ │ JWT认证 │ │ 轮询转发 │ │ 扣费规则 │ │ 支付宝 │ │ │ └─────────┘ └──────────┘ └───────────┘ └───────────┘ │ │ ┌─────────┐ ┌──────────┐ ┌───────────┐ ┌───────────┐ │ │ │ 密钥管理│ │ 用户管理 │ │ 内容运营 │ │ 调用日志 │ │ │ │ IP白名单│ │ RBAC权限 │ │ 公告/友链 │ │ IP归属地 │ │ │ └─────────┘ └──────────┘ └───────────┘ └───────────┘ │ └──────────────────────┬──────────────────────────────────┘ │ ┌────────────┼────────────┐ ▼ ▼ ▼ ┌────────┐ ┌──────────┐ ┌──────────┐ │ MySQL │ │ Redis │ │ 第三方API │ │33张表 │ │ 缓存/限流│ │ (上游服务)│ └────────┘ └──────────┘ └──────────┘计费扣费链路用户请求 → API 网关 → ① 校验密钥 IP 白名单 用户状态 → ② 检查指定返回配置 → ③ 配额检查全站套餐 → 接口套餐 → 点数 → 余额 → ④ 转发上游轮询 / 故障切换 → ⑤ 扣费规则匹配字段 运算符 期望值 → ⑥ 异步写入调用日志 → ⑦ 返回响应 计费信息头 快速开始环境要求JDK17MySQL8.0Redis7.0Node.js20pnpm101. 克隆项目gitclone https://github.com/your-username/nanfeng-api-billing.gitcdnanfeng-api-billing2. 初始化数据库mysql-uroot-pbackend/src/main/resources/db/schema.sql默认管理员账号nanfeng密码1234563. 配置后端编辑backend/src/main/resources/application.yml或通过环境变量配置# 环境变量推荐生产使用exportDB_HOSTlocalhostexportDB_PORT3306exportDB_NAMEnanfeng_api_billingexportDB_USERrootexportDB_PASSWORDyour_passwordexportREDIS_HOSTlocalhostexportREDIS_PORT6379exportREDIS_PASSWORDexportJWT_SECRETyour_jwt_secret_key4. 启动后端cdbackend ./mvnw spring-boot:run后端启动后运行在http://localhost:8080/api5. 配置前端cdvben-adminpnpminstall编辑playground/.env.development确保 API 代理指向后端VITE_GLOB_API_URLhttp://localhost:8080/api6. 启动前端pnpmdev:play7. 构建前端pnpm--filtervben/playground build前端启动后访问http://localhost:5555 项目结构nanfeng-api-billing/ ├── backend/ # Spring Boot 后端 │ ├── src/main/java/com/nanfeng/billing/ │ │ ├── controller/ # 18个 REST Controller120 API │ │ ├── service/ # 12个 Service 类 │ │ ├── security/ # JWT 认证与 Spring Security 配置 │ │ ├── config/ # 异步、CORS、文件上传等配置 │ │ ├── entity/ # MyBatis-Plus 实体RBAC │ │ ├── mapper/ # MyBatis-Plus Mapper │ │ ├── model/ # DTO / VO 数据传输对象 │ │ └── common/ # 统一响应、异常处理、URL模板引擎 │ └── src/main/resources/ │ ├── application.yml # 主配置文件 │ └── db/schema.sql # 33张表的完整建表脚本 初始数据 ├── vben-admin/ # Vue Vben Admin 前端monorepo │ ├── apps/ │ │ ├── web-antd/ # Ant Design Vue 应用模板 │ │ └── backend-mock/ # Nitro Mock 服务器 │ ├── playground/ # 实际业务应用楠枫API前端 │ │ └── src/ │ │ ├── views/ # 页面组件 │ │ │ ├── home/ # 首页统计概览 │ │ │ ├── market/ # API 商城 接口文档 │ │ │ ├── links/ # 友情链接 │ │ │ ├── donate/ # 赞赏支持 │ │ │ ├── interface/ # 接口管理管理员 │ │ │ ├── key/ # 密钥管理 │ │ │ ├── user/ # 用户管理管理员 │ │ │ ├── system/ # 系统配置菜单/角色/注册/站点 │ │ │ ├── package/ # 套餐管理 套餐商城 │ │ │ ├── payment/ # 支付配置 订单管理 │ │ │ ├── notice/ # 公告管理 │ │ │ ├── friend-link/ # 友链管理管理员 │ │ │ ├── dashboard/ # 工作台 / 分析面板 │ │ │ └── _core/ # 认证/个人中心/错误页 │ │ ├── api/ # 后端 API 对接层 │ │ ├── router/ # 路由配置 │ │ ├── components/ # 公共组件 │ │ └── layouts/ # 布局组件 │ └── packages/ # 共享框架包 │ ├── core/ # 核心框架 │ ├── effects/ # 功能插件 │ └── stores/ # Pinia 状态存储 └── images/ # 项目图片素材 ├── logo.png # 项目 Logo ├── wx.jpg # 微信赞赏码 └── zfb.jpg # 支付宝赞赏码️ 数据库设计33张表覆盖完整的 API 计费运营场景分类表名说明用户与权限sys_user,sys_role,sys_user_role,sys_menu,sys_role_menuRBAC 权限模型注册模块sys_register_config,sys_register_email_config,sys_register_email_code,sys_register_mobile_config,sys_register_mobile_code邮箱 手机双通道注册站点内容sys_site_config,sys_home_notice_config,sys_friend_link,sys_friend_link_application,sys_friend_link_config站点配置 友链管理接口与计费sys_interface_api,sys_interface_billing_rule,sys_interface_call_log,sys_user_api_key核心计费引擎套餐体系sys_package_global,sys_package_interface,sys_package_interface_spec,sys_package_point,sys_user_package_global,sys_user_package_interface多层级套餐支付模块sys_payment_alipay_config,sys_payment_recharge_amount,sys_payment_recharge_order支付宝支付公告sys_notice系统公告 默认账号角色用户名密码管理员nanfeng123456登录后请在个人中心修改密码。☕ 关键词楠枫计费系统计费系统api计费系统接口分发系统Made with ❤️ by NanFeng