|
|
@@ -0,0 +1,278 @@
|
|
|
+# URS系统对接建议
|
|
|
+
|
|
|
+**分析时间**: 2025年06月14日
|
|
|
+**分析对象**: URS系统对接方案
|
|
|
+**建议类型**: 技术架构对接建议
|
|
|
+
|
|
|
+## 📋 系统现状分析
|
|
|
+
|
|
|
+### 当前架构组件
|
|
|
+1. **URS PlugIn**: 位于`app/PlugIn/Urs/`,包含基础API和Webhook功能
|
|
|
+2. **UrsPromotion模块**: 已创建完整的推广关系管理模块(10个数据表)
|
|
|
+3. **ThirdParty模块**: 提供第三方服务统一管理(5个数据表)
|
|
|
+4. **OpenAPI模块**: 提供对外API管理能力(7个数据表)
|
|
|
+5. **Ecology模块**: 提供生态系统API接口(加密通信)
|
|
|
+
|
|
|
+### 核心功能特性
|
|
|
+- **API接口**: 用户信息查询、推广关系获取、下级统计
|
|
|
+- **Webhook机制**: 注册通知、出包/入包操作、入包检查
|
|
|
+- **加密通信**: AES-256-CBC加密 + SHA256签名验证
|
|
|
+- **资金操作**: 1:300比例的USDT到钻石转换
|
|
|
+- **推广体系**: 完整的URS推广关系和达人等级系统
|
|
|
+
|
|
|
+## 🎯 推荐对接方案
|
|
|
+
|
|
|
+### 方案一:基于ThirdParty模块的统一对接(强烈推荐)
|
|
|
+
|
|
|
+#### 方案优势
|
|
|
+- ✅ **统一管理**: 所有第三方服务在ThirdParty模块中统一管理
|
|
|
+- ✅ **监控完善**: 完整的健康检查、性能监控、可用性监控
|
|
|
+- ✅ **安全增强**: 标准化的认证、加密、签名验证机制
|
|
|
+- ✅ **配额控制**: 7种配额类型,精确控制调用频率
|
|
|
+- ✅ **日志审计**: 完整的调用日志记录和敏感操作审计
|
|
|
+- ✅ **运维便利**: 7个命令行工具支持自动化运维
|
|
|
+- ✅ **扩展性强**: 支持多环境、多版本、插件化架构
|
|
|
+
|
|
|
+#### 实施架构图
|
|
|
+```
|
|
|
+URS外部系统 ←→ ThirdParty模块 ←→ UrsPromotion模块 ←→ Fund模块
|
|
|
+ ↑ ↑ ↑ ↑
|
|
|
+ 加密通信 服务管理 推广关系管理 资金操作
|
|
|
+ 签名验证 监控告警 达人等级计算 钻石转换
|
|
|
+```
|
|
|
+
|
|
|
+#### 核心实施步骤
|
|
|
+
|
|
|
+##### 1. 服务注册配置
|
|
|
+在ThirdParty模块中注册URS服务:
|
|
|
+```php
|
|
|
+// 服务基本信息
|
|
|
+'name' => 'URS用户推广系统',
|
|
|
+'code' => 'URS_PROMOTION',
|
|
|
+'service_type' => 'SOCIAL',
|
|
|
+'auth_type' => 'SIGNATURE',
|
|
|
+'base_url' => 'https://urs.example.com/api',
|
|
|
+
|
|
|
+// 业务配置
|
|
|
+'config' => [
|
|
|
+ 'diamond_ratio' => 300, // 1 USDT = 300 钻石
|
|
|
+ 'fund_user_id' => 15, // 仓库账户用户ID
|
|
|
+ 'control_user_id' => 16, // 调控账户用户ID
|
|
|
+ 'currency_type' => 'DIAMOND', // 币种类型
|
|
|
+],
|
|
|
+
|
|
|
+// 认证凭证
|
|
|
+'credentials' => [
|
|
|
+ 'app_key' => 'Hy0LmLKJSbDQY2oaaZOZKR1XKpFHSY8Y',
|
|
|
+ 'timeout' => 300,
|
|
|
+ 'algorithm' => 'AES-256-CBC',
|
|
|
+ 'hash_algorithm' => 'sha256',
|
|
|
+]
|
|
|
+```
|
|
|
+
|
|
|
+##### 2. 加密服务集成
|
|
|
+创建URS专用的加密服务类:
|
|
|
+```php
|
|
|
+// app/Module/ThirdParty/Services/Crypto/UrsCryptoService.php
|
|
|
+class UrsCryptoService extends BaseCryptoService
|
|
|
+{
|
|
|
+ public function encrypt(array $data): array
|
|
|
+ {
|
|
|
+ // 实现URS的AES-256-CBC加密逻辑
|
|
|
+ // 生成随机IV、时间戳、签名
|
|
|
+ // 返回加密数据包
|
|
|
+ }
|
|
|
+
|
|
|
+ public function decrypt(array $encryptedData): array
|
|
|
+ {
|
|
|
+ // 验证时间戳(5分钟有效期)
|
|
|
+ // 验证SHA256签名
|
|
|
+ // 解密数据并返回
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+##### 3. API接口适配
|
|
|
+创建URS服务类封装所有API调用:
|
|
|
+```php
|
|
|
+// app/Module/ThirdParty/Services/UrsService.php
|
|
|
+class UrsService
|
|
|
+{
|
|
|
+ // 获取用户信息
|
|
|
+ public static function getUserInfo(string $userKey): array
|
|
|
+
|
|
|
+ // 获取用户团队关系
|
|
|
+ public static function getUserTeam(int $userId): array
|
|
|
+
|
|
|
+ // 获取用户下级统计
|
|
|
+ public static function getUserLevelCount(int $userId, int $level): array
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+##### 4. Webhook处理机制
|
|
|
+创建专门的Webhook控制器:
|
|
|
+```php
|
|
|
+// app/Module/ThirdParty/Controllers/UrsWebhookController.php
|
|
|
+class UrsWebhookController extends Controller
|
|
|
+{
|
|
|
+ // 注册通知处理
|
|
|
+ public function handleRegister(Request $request): JsonResponse
|
|
|
+
|
|
|
+ // 出包操作处理(用户提取钻石)
|
|
|
+ public function handleWithdraw(Request $request): JsonResponse
|
|
|
+
|
|
|
+ // 入包操作处理(用户充值钻石)
|
|
|
+ public function handleDeposit(Request $request): JsonResponse
|
|
|
+
|
|
|
+ // 入包检查处理(验证余额和费用)
|
|
|
+ public function handleCheck(Request $request): JsonResponse
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+##### 5. 资金操作集成
|
|
|
+与Fund模块对接实现资金操作:
|
|
|
+```php
|
|
|
+// 出包操作:用户账户 → 专属账户
|
|
|
+$result = FundService::transfer(
|
|
|
+ $userId, // 从用户账户
|
|
|
+ config('urs.fund_user_id'), // 转到专属账户
|
|
|
+ 'DIAMOND', // 币种
|
|
|
+ $diamondAmount, // 数量
|
|
|
+ 'URS出包操作', // 备注
|
|
|
+ $transactionId // 交易ID(防重复)
|
|
|
+);
|
|
|
+
|
|
|
+// 入包操作:专属账户 → 用户账户
|
|
|
+$result = FundService::transfer(
|
|
|
+ config('urs.fund_user_id'), // 从专属账户
|
|
|
+ $userId, // 转到用户账户
|
|
|
+ 'DIAMOND', // 币种
|
|
|
+ $diamondAmount, // 数量
|
|
|
+ 'URS入包操作', // 备注
|
|
|
+ $transactionId // 交易ID(防重复)
|
|
|
+);
|
|
|
+```
|
|
|
+
|
|
|
+#### 配置示例
|
|
|
+
|
|
|
+##### 数据库配置
|
|
|
+```sql
|
|
|
+-- 插入URS服务配置
|
|
|
+INSERT INTO kku_thirdparty_services (
|
|
|
+ name, code, provider, service_type, base_url, auth_type,
|
|
|
+ config, credentials, timeout, retry_times
|
|
|
+) VALUES (
|
|
|
+ 'URS用户推广系统',
|
|
|
+ 'URS_PROMOTION',
|
|
|
+ 'URS',
|
|
|
+ 'SOCIAL',
|
|
|
+ 'https://urs.example.com/api',
|
|
|
+ 'SIGNATURE',
|
|
|
+ '{"diamond_ratio":300,"fund_user_id":15,"control_user_id":16}',
|
|
|
+ '{"app_key":"Hy0LmLKJSbDQY2oaaZOZKR1XKpFHSY8Y","timeout":300}',
|
|
|
+ 30,
|
|
|
+ 3
|
|
|
+);
|
|
|
+
|
|
|
+-- 配置调用配额
|
|
|
+INSERT INTO kku_thirdparty_quotas (service_id, quota_type, quota_limit) VALUES
|
|
|
+(1, 'PER_MINUTE', 100), -- 每分钟100次
|
|
|
+(1, 'PER_DAY', 10000); -- 每天10000次
|
|
|
+```
|
|
|
+
|
|
|
+##### 环境配置
|
|
|
+```php
|
|
|
+// config/thirdparty.php
|
|
|
+'services' => [
|
|
|
+ 'urs' => [
|
|
|
+ 'enabled' => true,
|
|
|
+ 'base_url' => env('URS_BASE_URL', 'https://urs.example.com/api'),
|
|
|
+ 'app_key' => env('URS_APP_KEY', 'Hy0LmLKJSbDQY2oaaZOZKR1XKpFHSY8Y'),
|
|
|
+ 'diamond_ratio' => env('URS_DIAMOND_RATIO', 300),
|
|
|
+ 'fund_user_id' => env('URS_FUND_USER_ID', 15),
|
|
|
+ 'webhook_secret' => env('URS_WEBHOOK_SECRET', 'urs_webhook_secret'),
|
|
|
+ ],
|
|
|
+],
|
|
|
+```
|
|
|
+
|
|
|
+### 方案二:基于OpenAPI模块的对外服务(补充方案)
|
|
|
+
|
|
|
+#### 适用场景
|
|
|
+如果需要将农场系统的功能开放给URS系统调用,可以使用OpenAPI模块。
|
|
|
+
|
|
|
+#### 实施要点
|
|
|
+1. **应用注册**: 为URS系统创建OpenAPI应用
|
|
|
+2. **权限配置**: 分配合适的API权限范围
|
|
|
+3. **接口开发**: 开发URS需要的API接口
|
|
|
+4. **监控统计**: 监控URS系统的API调用情况
|
|
|
+
|
|
|
+## 🔧 技术实施细节
|
|
|
+
|
|
|
+### 1. 数据流向设计
|
|
|
+```
|
|
|
+URS系统请求 → ThirdParty模块 → 业务逻辑处理 → 返回响应
|
|
|
+ ↓ ↓ ↓ ↓
|
|
|
+ 加密验证 服务路由 UrsPromotion 加密响应
|
|
|
+ 签名检查 配额控制 Fund模块 日志记录
|
|
|
+```
|
|
|
+
|
|
|
+### 2. 安全机制
|
|
|
+- **多层验证**: 签名验证 + 时间戳检查 + IP白名单
|
|
|
+- **加密传输**: AES-256-CBC加密所有敏感数据
|
|
|
+- **防重放**: 5分钟时间窗口 + 交易ID去重
|
|
|
+- **访问控制**: 基于服务的权限管理
|
|
|
+- **审计日志**: 记录所有敏感操作
|
|
|
+
|
|
|
+### 3. 性能优化
|
|
|
+- **连接池**: 复用HTTP连接减少开销
|
|
|
+- **缓存机制**: 缓存用户信息和推广关系
|
|
|
+- **异步处理**: 资金操作使用队列异步处理
|
|
|
+- **批量操作**: 支持批量查询和更新
|
|
|
+- **数据库优化**: 合理的索引和查询优化
|
|
|
+
|
|
|
+### 4. 监控告警
|
|
|
+- **健康检查**: 定期检查URS服务可用性
|
|
|
+- **性能监控**: 响应时间和成功率监控
|
|
|
+- **配额监控**: 调用频率和配额使用监控
|
|
|
+- **异常告警**: 服务异常时及时通知
|
|
|
+- **数据统计**: 调用量、成功率等统计分析
|
|
|
+
|
|
|
+## 📊 对接价值分析
|
|
|
+
|
|
|
+### 技术价值
|
|
|
+1. **架构统一**: 所有第三方服务统一管理,降低维护成本
|
|
|
+2. **安全增强**: 标准化的安全机制,提高系统安全性
|
|
|
+3. **监控完善**: 全面的监控体系,提高系统可靠性
|
|
|
+4. **扩展便利**: 插件化架构,便于后续功能扩展
|
|
|
+
|
|
|
+### 业务价值
|
|
|
+1. **用户体验**: 统一的推广体系,提升用户参与度
|
|
|
+2. **运营效率**: 自动化的资金操作,减少人工干预
|
|
|
+3. **数据洞察**: 完整的数据统计,支持业务决策
|
|
|
+4. **风险控制**: 多层次的安全机制,降低业务风险
|
|
|
+
|
|
|
+## 🚀 实施建议
|
|
|
+
|
|
|
+### 优先级排序
|
|
|
+1. **P0 - 核心功能**: API接口适配、Webhook处理、资金操作
|
|
|
+2. **P1 - 安全机制**: 加密服务、签名验证、防重放攻击
|
|
|
+3. **P2 - 监控运维**: 健康检查、性能监控、告警通知
|
|
|
+4. **P3 - 优化扩展**: 缓存优化、批量处理、功能扩展
|
|
|
+
|
|
|
+### 实施时间线
|
|
|
+- **第1周**: 服务注册、加密服务集成、基础API适配
|
|
|
+- **第2周**: Webhook处理、资金操作集成、安全机制完善
|
|
|
+- **第3周**: 监控配置、性能优化、测试验证
|
|
|
+- **第4周**: 文档完善、培训交付、上线部署
|
|
|
+
|
|
|
+## 💡 最终建议
|
|
|
+
|
|
|
+**强烈推荐采用方案一(基于ThirdParty模块的统一对接)**,理由如下:
|
|
|
+
|
|
|
+1. **架构优势**: 利用ThirdParty模块的企业级服务管理能力
|
|
|
+2. **安全保障**: 标准化的安全机制和完善的监控体系
|
|
|
+3. **运维便利**: 丰富的管理工具和自动化运维能力
|
|
|
+4. **扩展性强**: 支持后续更多第三方服务的接入
|
|
|
+5. **维护成本低**: 统一的管理界面和标准化的操作流程
|
|
|
+
|
|
|
+通过这种对接方案,既保持了URS系统的原有功能特性,又获得了ThirdParty模块提供的企业级服务管理能力,为系统的稳定运行和后续扩展奠定了坚实基础。
|