任务时间: 2025年07月02日 20:00-20:30
任务类型: 功能开发
模块: ThirdParty/Urs
按照现有WebHook模式,新增一个URS注册农场用户的WebHook处理器,用于处理URS用户注册农场用户的请求。
UrsUserMappingService::getFarmUserIdByUserKeyWithAutoCreate($userKey, $ursUserId) 的公共逻辑文件: ThirdParty/Urs/Webhook/UrsRegisterFarmUserWebhook.php
主要功能:
WebhookReceiver 基类register_farm_useruser_id 和 user_keyUrsUserMappingService::getFarmUserIdByUserKeyWithAutoCreate() 处理用户注册文件: ThirdParty/Urs/UrsServiceProvider.php
修改内容:
UrsRegisterFarmUserWebhook 类的导入registerWebhookHandlers() 方法中注册新的处理器'register_farm_user' => UrsRegisterFarmUserWebhook::classprotected function validateRegisterRequest(Request $request): void
{
$requiredFields = ['user_id', 'user_key'];
foreach ($requiredFields as $field) {
if (!$request->has($field)) {
throw new \Exception("缺少必需字段: {$field}");
}
}
// 验证用户ID格式
$userId = $request->input('user_id');
if (!is_numeric($userId) || $userId <= 0) {
throw new \Exception('用户ID格式无效');
}
// 验证用户密钥
$userKey = $request->input('user_key');
if (empty($userKey)) {
throw new \Exception('用户密钥不能为空');
}
}
protected function processRegisterFarmUser($ursUserId, $userKey): array
{
// 使用UrsUserMappingService的公共逻辑获取或创建农场用户ID
$farmUserId = UrsUserMappingService::getFarmUserIdByUserKeyWithAutoCreate($userKey, $ursUserId);
if (!$farmUserId) {
throw new \Exception("无法获取或创建农场用户ID");
}
// 返回成功响应
return [
'farm_user_id' => $farmUserId,
'status' => 'success'
];
}
http://kku_laravel.local.gd/thirdParty/webhook/urs/register_farm_user{
"user_id": 12345,
"user_key": "test_user_key_12345"
}
X-SignatureHy0LmLKJSbDQY2oaaZOZKR1XKpFHSY8Yuser_id=12345&user_key=test_user_key_12345{
"success": true,
"data": {
"farm_user_id": 39147,
"status": "success"
},
"request_id": "webhook_dispatch_686524a32e66b8.94052417"
}
测试成功:WebHook正常工作,成功创建了农场用户ID为39147的用户。
ThirdParty/Urs/Webhook/UrsRegisterFarmUserWebhook.php - WebHook处理器ThirdParty/Urs/Webhook/webhook.md - 需求文档ThirdParty/Urs/UrsServiceProvider.php - 注册新的WebHook处理器新增URS注册农场用户WebHook处理器
- 创建UrsRegisterFarmUserWebhook类,处理URS用户注册农场用户请求
- 实现参数验证:验证user_id和user_key参数格式
- 集成UrsUserMappingService::getFarmUserIdByUserKeyWithAutoCreate逻辑
- 返回farm_user_id给调用方,包含完整的错误处理和日志记录
- 在UrsServiceProvider中注册新的WebHook处理器
- 测试验证功能正常,成功创建农场用户并返回正确响应
成功实现了URS注册农场用户的WebHook处理器,完全按照现有WebHook模式开发:
该WebHook处理器已成功集成到系统中,可以正常处理URS用户注册农场用户的请求。