justbetter / laravel-magento-webhooks

一个用于监听来自 mageplaza/webhooks 发出的 webhook 的 Laravel 扩展包。

2.1.0 2024-03-29 09:31 UTC

This package is auto-updated.

Last update: 2024-09-19 13:54:59 UTC


README

Package banner

Laravel Magento Webhooks

Tests Coverage Analysis Total downloads

此包提供了一个端点来接收来自 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)。有关更多信息,请参阅 许可文件

Package footer