- 🔐 认证系统 - 登录/注册、邮箱验证、密码管理、Token 持久化
- 📱 核心功能 - 用户管理、订阅管理、套餐购买、订单支付
- 💰 财务系统 - 余额管理、佣金系统、优惠券、多种支付方式
- 🎫 增值功能 - 工单系统、通知中心、邀请系统、应用配置
- 🛡️ 技术特性 - 类型安全、异常处理、自动重试、Token 持久化
SDK 采用策略模式设计,支持 XBoard 和 V2Board 两种面板类型,通过工厂模式动态选择对应实现。
lib/src/
├── core/ # 核心基础设施
│ ├── factory/ # 策略工厂(面板选择)
│ ├── http/ # HTTP 请求与配置
│ ├── auth/ # 认证与 Token 管理
│ ├── models/ # 核心数据模型
│ └── exceptions/ # 异常定义
├── contracts/ # API 契约接口(16个)
└── panels/ # 面板实现(按类型隔离)
├── xboard/ # XBoard 专用实现
│ ├── apis/ # API 实现
│ └── models/ # 数据模型
└── v2board/ # V2Board 专用实现
├── apis/
└── models/
- 面板隔离 - XBoard 和 V2Board 实现完全独立,互不干扰
- 易于扩展 - 添加新面板只需实现契约接口
- 类型安全 - 每个面板使用专属数据模型,无需复杂转换
- 模块化 - 核心功能按职责划分为独立模块
// 初始化时指定面板类型
await XBoardSDK.instance.initialize(
'https://your-api.com',
panelType: 'xboard', // 或 'v2board'
);
// 之后的调用自动使用对应面板实现
final inviteInfo = await sdk.invite.getInviteInfo();在 pubspec.yaml 中添加依赖:
dependencies:
flutter_xboard_sdk:
git:
url: https://github.com/hakimi-x/flutter_xboard_sdk.git
ref: main或者使用本地路径:
dependencies:
flutter_xboard_sdk:
path: ./path/to/flutter_xboard_sdkimport 'package:flutter_xboard_sdk/flutter_xboard_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 基础初始化
await XBoardSDK.instance.initialize(
'https://your-api.com',
panelType: 'xboard', // 或 'v2board'
);
// 使用代理
await XBoardSDK.instance.initialize(
'https://your-api.com',
panelType: 'xboard',
proxyUrl: '127.0.0.1:7890', //开发时候仅针对s5开发,http以及其他自测
);
runApp(MyApp());
}| 参数 | 类型 | 说明 |
|---|---|---|
baseUrl |
String |
API 基础地址(必填) |
panelType |
String |
面板类型:xboard 或 v2board(必填) |
proxyUrl |
String? |
代理地址,如:127.0.0.1:7890 |
userAgent |
String? |
自定义 User-Agent |
useMemoryStorage |
bool |
使用内存存储(默认 false) |
高级配置(可选):
- 如需更多 HTTP 配置,可传入
httpConfig参数(证书固定、混淆等)
新版Xboard在HTTP头中,使用标准的"authorization: Bearer $token"格式。 旧版Xboard缺少Bearer字符串,而是使用"authorization: $token"格式。有"Bearer" 存在时调用会认证失败,返回403错误。因此在对接旧版Xboard时需要去掉Bearer 字符串。
这个操作可以在nginx反向代理的配置中实现。例如,
location /api {
set $auth_header "";
# Check if the Authorization header exists and starts with "Bearer"
if ($http_authorization ~* "^Bearer\s+(.+)") {
set $auth_header $1;
}
# Set the modified Authorization header without "Bearer"
proxy_set_header Authorization $auth_header;
proxy_pass http://127.0.0.1:7001/api;
}本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
遇到问题?欢迎:
Made with ❤️ by Hakimi-X