Laravel 8 Spatie Webhook Client自定义签名验证类无效报错问询
问题原因
- 核心错误是命名空间定义与实际类路径不匹配:
你的CustomSignatureValidator.php文件放在app/Handler目录下,正确的命名空间应该是App\Handler,你现在的命名空间多写了末尾的\CustomSignatureValidator,导致类的完整限定名变成了App\Handler\CustomSignatureValidator\CustomSignatureValidator,和你配置中填写的App/Handler/CustomSignatureValidator路径不匹配,包校验时找不到符合接口要求的类。 - 你尝试的别名导入写法没有解决根本问题,所以报错不变。
修复步骤
- 修正类文件的命名空间,修改后的完整代码如下:
<?php namespace App\Handler; use Illuminate\Http\Request; use Spatie\WebhookClient\Exceptions\WebhookFailed; use Spatie\WebhookClient\WebhookConfig; use Spatie\WebhookClient\SignatureValidator\SignatureValidator; class CustomSignatureValidator implements SignatureValidator { public function isValid(Request $request, WebhookConfig $config): bool { return true; } }
- 确认
config/webhook-client.php配置文件中对应webhook配置的signature_validator字段值为:
'signature_validator' => \App\Handler\CustomSignatureValidator::class,
- 执行
php artisan config:clear清除配置缓存,重新测试即可。
内容的提问来源于stack exchange,提问作者Hector ilva
相关产品推荐
相关产品推荐

