无法制作自定义签名验证器 class [Laravel 8 Spatie Webhook 客户端]
Can't make a custom Signature validator class [Laravel 8 Spatie Webhook Client]
我是初学者,我正在尝试制作自定义签名验证器 class 并按照 Spatie 文档制作了实现 Spatie\WebhookClient\SignatureValidator\SignatureValidator 的文件 CustomSignatureValidator.php 但我出现以下错误:
App/Handler/CustomSignatureValidator 不是有效的签名验证 class。有效的签名验证器是实现 Spatie\WebhookClient\SignatureValidator\SignatureValidator
的 class
这是它的样子:
<?php
namespace App\Handler\CustomSignatureValidator;
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;
}
}
我也试过使用
use Spatie\WebhookClient\SignatureValidator\SignatureValidator as SignatureValidator;
但是我也遇到了同样的错误。
如果你能告诉我我做错了什么,我将不胜感激。
我觉得你有太多了CustomSignatureValidator
。您的命名空间是 App\Handler\CustomSignatureValidator
,这意味着您的 class 将是 App\Handler\CustomSignatureValidator\CustomSignatureValidator
.
我猜这个错误不是因为你的 class 没有实现正确的接口,而是自动加载器找不到它。
尝试从您的命名空间中删除 CustomSignatureValidator
,这将导致您的 class 变为 App\Handler\CustomSignatureValidator
,Laravel 应该能够找到它。
我是初学者,我正在尝试制作自定义签名验证器 class 并按照 Spatie 文档制作了实现 Spatie\WebhookClient\SignatureValidator\SignatureValidator 的文件 CustomSignatureValidator.php 但我出现以下错误:
App/Handler/CustomSignatureValidator 不是有效的签名验证 class。有效的签名验证器是实现 Spatie\WebhookClient\SignatureValidator\SignatureValidator
的 class这是它的样子:
<?php
namespace App\Handler\CustomSignatureValidator;
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;
}
}
我也试过使用
use Spatie\WebhookClient\SignatureValidator\SignatureValidator as SignatureValidator;
但是我也遇到了同样的错误。
如果你能告诉我我做错了什么,我将不胜感激。
我觉得你有太多了CustomSignatureValidator
。您的命名空间是 App\Handler\CustomSignatureValidator
,这意味着您的 class 将是 App\Handler\CustomSignatureValidator\CustomSignatureValidator
.
我猜这个错误不是因为你的 class 没有实现正确的接口,而是自动加载器找不到它。
尝试从您的命名空间中删除 CustomSignatureValidator
,这将导致您的 class 变为 App\Handler\CustomSignatureValidator
,Laravel 应该能够找到它。