mahan-shoghy/laravel-doordash

Laravel 的 Doordash 实现

1.41 2024-02-08 19:21 UTC

This package is auto-updated.

Last update: 2024-09-08 09:30:28 UTC


README

Laravel Doordash API 包简化了在 Laravel 应用程序中与 Doordash API 集成的过程。

目前,仅发布了 Drive(配送)功能。

欢迎添加更多功能!

Doordash API 文档

目录

安装

通过 composer(Laravel 10+)

composer require mahan-shoghy/laravel-doordash

可选:如果您想发布配置文件,请使用以下命令

php artisan vendor:publish --provider="MahanShoghy\LaravelDoordash\DoordashServiceProvider" --tag="config"

使用方法

设置环境

将这些变量添加到您的环境文件中

DOORDASH_DEVELOPER_ID=
DOORDASH_KEY_ID=
DOORDASH_SIGNING_SECRET=

您可以在 Doordash 开发者门户中创建凭证并获取值

配送

使用配送门面

use MahanShoghy\LaravelDoordash\App\Drive\Facades\Delivery;

创建报价 - 文档

Delivery::createQuote(array $data);

接受报价 - 文档

Delivery::acceptQuote(string $external_delivery_id, int $tip);

创建配送 - 文档

Delivery::create(array $data);

获取配送 - 文档

Delivery::get(string $external_delivery_id);

更新配送 - 文档

Delivery::update(string $external_delivery_id, array $data);

取消配送 - 文档

Delivery::cancel(string $external_delivery_id);

Webhook

Webhook 允许您的 Laravel 应用程序实时接收和处理 Doordash 事件。按照以下步骤在您的应用程序中设置 Webhook 处理。

  1. 发布配置文件:如果您还没有这样做,请使用以下命令发布配置文件
     php artisan vendor:publish --provider="MahanShoghy\LaravelDoordash\DoordashServiceProvider" --tag="config"
    
  2. 生成 Webhook 授权令牌:将以下变量添加到您的环境文件中

     DOORDASH_WEBHOOK_AUTH_TOKEN=
    

    运行以下命令以生成令牌

     php artisan doordash:generate-webhook-token
    

    生成的令牌将设置在您的环境文件中。在开发者门户上创建 Webhook 端点时,在授权头中使用此令牌。

  3. 定义 Webhook 路由:在您的 Laravel 路由文件(如:web.php)中添加一个用于处理 Webhook 的路由。您可以选择任何您喜欢的 URL。默认情况下,HTTP 方法设置为 POST,但您可以根据需要更改它。

     Route::doordashWebhooks('your-webhook-url'); // Default method is POST
     // OR
     Route::doordashWebhooks('your-webhook-url', 'get'); // Change HTTP method to GET
    
  4. 配置 Webhook 事件:打开 doordash.php 配置文件(您在第一步中已发布),指定您要处理的事件和相应的作业类。以下是一个示例

     'jobs' => [
         'DASHER_CONFIRMED' => DasherConfirmedJob::class,
     ]
    

    在作业类中,您可以访问 Doordash 发送的事件的有效负载数据。

     class DasherConfirmedJob implements ShouldQueue
     {
         public Payload $payload;
        
         public function __construct(Payload $payload)
         {
             $this->payload = $payload;
         }
        
         public function handle(): void
         {
             // Handle the webhook event using $this->payload
         }
     }
    
  5. 事件文档:您可以在 Doordash 文档 中找到可用 Doordash Webhook 事件的列表。此资源将帮助您了解和配置您希望处理的事件。

  6. 使用 Laravel 队列:为了更好的性能和可伸缩性,请考虑使用 Laravel 队列异步处理 Webhook 作业。这确保了即使在高负载的 Webhook 流量期间,您的应用程序也能保持响应。

现在,您的 Laravel 应用程序已准备好实时接收和处理 Doordash Webhook 事件。

支持

如果您有任何问题或需要帮助,请随时 联系我们。如果希望在 README 中包含特定的代码示例以帮助用户快速入门,也可以添加这些示例。

捐赠

如果您觉得这个包很有用,并想支持其开发,您可以通过加密货币进行捐赠。您的贡献将帮助维护和改进这个包。

您可以将您的捐赠发送到您的MetaMask钱包中的以下地址
钱包地址

0x4B3d57AC72B57a76b778Bac4e3b32d2d4d729955

感谢您的支持!