justbetter / laravel-magento-webhooks
一个用于监听来自 mageplaza/webhooks 发出的 webhook 的 Laravel 扩展包。
Requires
- php: ^8.1
- laravel/framework: ^10.0|^11.0
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.6
- orchestra/testbench: ^8.0|^9.0
- phpstan/phpstan-mockery: ^1.1
- phpunit/phpunit: ^10.5
README
Laravel Magento Webhooks
此包提供了一个端点来接收来自 Mageplaza Webhooks 模块的事件。它可以配置为在触发 Magento 中的特定事件时发送 Laravel 事件。
请参阅我们的其他 Laravel Magento 扩展包!我们还有一个 Magento 客户端,可以轻松地将 Laravel 连接到 Magento!
安装
安装 composer 包。
composer require justbetter/laravel-magento-webhooks
设置
发布包的配置。
php artisan vendor:publish --provider="JustBetter\MagentoWebhooks\ServiceProvider" --tag=config
运行事件日志迁移。
php artisan migrate
配置
您配置文件中的 events
数组可以用来添加事件。
默认情况下,webhook url 上没有 中间件。可以通过添加自己的中间件到 middleware
数组来更改,如认证。
安排清理命令
为了防止数据库填满,请在您的 Kernel 中安排 CleanLogsCommand
。
use JustBetter\MagentoWebhooks\Commands\CleanLogsCommand; $schedule->command(CleanLogsCommand::class)->daily();
此命令支持使用自定义日期。您可以传递一个日期参数,这将清理在此日期之前的事件。此日期默认为一个月前。
php artisan magento:webhooks:clean-logs --date="yesterday"
Magento Webhook 配置
以下配置可以用于成功处理 webhook。
只要存在一个 event
键,您就可以按照自己的喜好配置 body。该 event
可以命名为任何名称。
{ "event": "MyWebhookEvent", "some_key": "some_value" }
添加事件
在 Laravel 中添加事件可以简单地分几个步骤完成。
创建一个事件
在 Laravel 中创建一个新的事件,并确保扩展我们的 WebhookEvent
。
<?php namespace App\Events; use JustBetter\MagentoWebhooks\Events\WebhookEvent; class MyLaravelEvent extends WebhookEvent { // }
这样,您将有一个 $event
和 $data
的构造函数。
更新您的配置
打开您的 magento-webhooks
配置并添加一个事件。
注意:请确保事件
MyWebhookEvent
与您上面的json
配置匹配。
<?php return [ // ... 'events' => [ // single event 'MyWebhookEvent' => \App\Events\MyLaravelEvent::class, // or multiple events 'MyWebhookEvent' => [ \App\Events\MyLaravelEvent1::class, \App\Events\MyLaravelEvent2::class, ], ], ];
创建一个监听器
运行以下命令以生成一个事件监听器。
php artisan make:listener MyLaravelEventListener
注册您的事件和监听器
更新您的 EventServiceProvider
以添加您的事件和监听器。
<?php protected $listen = [ // ... MyLaravelEvent::class => [ MyLaravelEventListener::class, ], ];
测试
为了测试包的功能,运行以下命令
composer test
贡献
请参阅 CONTRIBUTING 以获取详细信息。
安全漏洞
请查看 我们的安全策略 以了解如何报告安全漏洞。
鸣谢
许可协议
MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件。