承接 muscobytes/laravel-cdek-webhook 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

muscobytes/laravel-cdek-webhook

最新稳定版本:1.0.5

Composer 安装命令:

composer create-project muscobytes/laravel-cdek-webhook

包简介

Create endpoint in your Laravel application for CDEK with zero effort.

README 文档

README

Установка

composer require muscobytes/laravel-cdek-webhook

Настройка

Настройка пакета заключается в определении URL для обработки запросов от CDEK. Это можно сделать двумя способами: установка переменной через файл .env или определение переменной в файле config/cdek.php.

.env

В файл .env необходимо добавить следующую строку:

CDEK_WEBHOOK_URL=/api/cdek/webhook

config/cdek.php

Для определения URL посредством файла конфигурации необходимо опубликовать файл конфигурации:

php artisan vendor:publish --provider="Muscobytes\CdekWebhook\CdekWebhookServiceProvider" --tag="config"

В файле config/cdek.php необходимо определить значение для ключа webhook_url:

<?php
return [
    'webhook_url' => env('CDEK_WEBHOOK_URL', '/api/cdek/webhook')
];

Использование

При выполнении запроса на URL, определенный в настройках, будет инициирован вызов одного из событий:

  • DownloadPhotoEvent::class
  • OrderStatusEvent::class
  • PrealertEvent::class
  • PrintFormEvent::class

Для каждого из вышеперечисленных событий вы можете создать собственный обработчик события.

Например, для события DownloadPhotoEvent::class:

php artisan make:listener DownloadPhotoListener

В созданном файле app/Listeners/DownloadPhotoListener.php необходимо определить метод handle:

<?php

namespace App\Listeners;

use App\Jobs\CreateOrderFromPostingJob;
use Muscobytes\OzonSeller\Events\DownloadPhotoEvent;

class DownloadPhotoEventListener
{
    public function handle(
        DownloadPhotoEvent $event
    ): void
    {
        /** @var \Muscobytes\CdekWebhook\Messages\DownloadPhotoMessage $message */
        $message = $event->getMessage();
        // Ваш код
    }
}

В свойстве $message объекта DownloadPhotoEvent находится DTO с данными запроса от СДЭК.

Набор свойств DTO соответствует набору полей, описанных в документации СДЭК.

Для того чтобы зарегистрировать обработчик события, необходимо добавить в массив $listen класс события и присвоить ему класс обработчика события в файле app/Providers/EventServiceProvider.php:

class EventServiceProvider extends ServiceProvider
{
    protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
        OrderStatusEvent::class => [
            OrderStatusEventListener::class
        ]
    ];

统计信息

  • 总下载量: 26
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-05-25