任务时间: 2025年06月14日 15:32 - 23:32
任务类型: 架构优化
涉及模块: ThirdParty模块
用户反馈ThirdParty模块的分发映射关系需要优化,并明确了设计原则:
原有设计存在以下问题:
['包名' => ['路由' => '处理器类名']]为URS包创建了4个专门的处理器:
UrsRegisterWebhook - 用户注册通知
UrsDepositWebhook - 充值操作通知
UrsWithdrawWebhook - 提取操作通知
UrsCheckWebhook - 余额检查通知
# 注册通知测试
curl -X POST http://kku_laravel.local.gd/thirdParty/webhook/urs/register \
-H "Content-Type: application/json" \
-d '{"user_id": 123, "username": "testuser", "status": "success"}'
# 充值通知测试
curl -X POST http://kku_laravel.local.gd/thirdParty/webhook/urs/deposit \
-H "Content-Type: application/json" \
-d '{"user_id": 456, "amount": 100.50, "order_id": "ORDER123", "status": "success"}'
# 提取通知测试
curl -X POST http://kku_laravel.local.gd/thirdParty/webhook/urs/withdraw \
-H "Content-Type: application/json" \
-d '{"user_id": 789, "amount": 200.00, "order_id": "WITHDRAW456", "status": "success"}'
# 余额检查测试
curl -X POST http://kku_laravel.local.gd/thirdParty/webhook/urs/check \
-H "Content-Type: application/json" \
-d '{"user_id": 999, "check_type": "balance", "request_id": "CHECK123"}'
# 查看已注册的包
php artisan thirdparty:webhook-mapping list
# 查看URS包详情
php artisan thirdparty:webhook-mapping show urs
# 测试路由匹配
php artisan thirdparty:webhook-mapping test urs register
ThirdParty/Urs/UrsRegisterWebhook.php - 注册通知处理器ThirdParty/Urs/UrsDepositWebhook.php - 充值通知处理器ThirdParty/Urs/UrsWithdrawWebhook.php - 提取通知处理器ThirdParty/Urs/UrsCheckWebhook.php - 余额检查处理器app/Module/ThirdParty/Commands/WebhookMappingCommand.php - 管理命令app/Module/ThirdParty/Services/WebhookDispatchService.php - 简化分发逻辑ThirdParty/Urs/UrsServiceProvider.php - 更新处理器注册app/Module/ThirdParty/Models/ThirdPartyLog.php - 添加fillable属性config/app.php - 注册URS服务提供者本次优化成功简化了ThirdParty模块的分发映射关系,严格遵循了"一个WebhookHandler只处理一种请求"和"Webhook只支持POST请求"的设计原则。新的架构更加简单、直观、易于维护,同时保持了良好的扩展性和性能。