Не удается создать пользовательский класс валидатора подписей [Клиент веб-крючка Laravel 8 Spatie]

#php #laravel #laravel-8 #webhooks

Вопрос:

Я новичок, и я пытаюсь создать собственный класс проверки подписи, и, следуя документации Spatie, я создал файл CustomSignatureValidator.php который реализует SpatieWebhookClientSignatureValidatorSignatureValidator, но я получаю следующую ошибку:

Приложение/Обработчик/CustomSignatureValidator не является допустимым классом проверки подписи. Валидатор действительной подписи-это класс, реализующий SpatieWebhookClientSignatureValidatorSignatureValidator

Вот как это выглядит:

  <?php
    
    namespace AppHandlerCustomSignatureValidator;
    
    use IlluminateHttpRequest;
    use SpatieWebhookClientExceptionsWebhookFailed;
    use SpatieWebhookClientWebhookConfig;
    use SpatieWebhookClientSignatureValidatorSignatureValidator;
    
    class CustomSignatureValidator implements SignatureValidator
    {
        public function isValid(Request $request, WebhookConfig $config): bool
        {
            return true;
        }
    }
 

Я также пробовал использовать

 use SpatieWebhookClientSignatureValidatorSignatureValidator as SignatureValidator;
 

Но я также получаю ту же ошибку.

Если бы вы могли сказать мне, что я делаю не так, я был бы вам очень признателен.

Ответ №1:

Я думаю, что у тебя их слишком много CustomSignatureValidator . Ваше пространство имен есть AppHandlerCustomSignatureValidator , а это значит, что ваш класс будет AppHandlerCustomSignatureValidatorCustomSignatureValidator .

Я предполагаю, что ошибка не в том, что ваш класс не реализует правильный интерфейс, а в том, что он не может быть найден загрузчиком.

Попробуйте удалить CustomSignatureValidator из своего пространства имен, что приведет к тому , что ваш класс станет AppHandlerCustomSignatureValidator , который Laravel должен быть в состоянии найти.