esensdesign / snipcart-webhooks
[已分叉] 在 Laravel 中接收和使用 Snipcart webhooks
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.5
- laravel/framework: ^11.0
Requires (Dev)
- nunomaduro/collision: ^7.0
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
This package is not auto-updated.
Last update: 2024-10-03 10:19:18 UTC
README
此包使得在 Laravel 应用程序中设置和使用 Snipcart webhooks 变得非常简单。
安装
使用 Composer 安装此包。
composer require esensdesign/snipcart-webhooks
在 .env
中设置您的 Snipcart Live Secret
和 Test Secret
。您可以在 Snipcart 控制台 中找到它们。
SNIPCART_LIVE_SECRET=******************************** SNIPCART_TEST_SECRET=********************************
您还可以发布此包的配置。
php artisan vendor:publish --provider="Esensdesign\SnipcartWebhooks\SnipcartWebhooksServiceProvider"
以下配置将被发布到 config/snipcart-webhooks.php
。
return [ /* |-------------------------------------------------------------------------- | Snipcart API Keys |-------------------------------------------------------------------------- | | Your secret Snipcart API Keys for the Live and Test Environment. | */ 'live_secret' => env('SNIPCART_LIVE_SECRET'), 'test_secret' => env('SNIPCART_TEST_SECRET'), /* |-------------------------------------------------------------------------- | Test Mode |-------------------------------------------------------------------------- | | Set this to 'false' to authenticate using the 'live_secret'. | You probably want to do this in production only. | */ 'test_mode' => env('SNIPCART_TEST_MODE', true), ];
基本用法
- 注册一个接收 webhook 的路由
- 创建事件监听器或订阅者以监听 Snipcart 事件。
路由
前往您的 Snipcart 控制台 并配置您想要接收 webhook 请求的 URL。使用提供的 Route::snipcart
宏在 routes/web.php
中注册该路由。
Route::snipcart('webhook-receiving-url');
这将注册一个由此包提供的控制器的 POST
路由。该路由将注册而不带 VerifyCsrfToken
中间件,因为 Snipcart 没有获取 csrf-token 的方法。
事件 & 监听器
每个传入的 Snipcart webhook 请求都会触发其对应的事件。创建并注册一个或多个事件监听器或订阅者,进行您的操作。
概述
OrderCompleted
Esensdesign\SnipcartWebhooks\Events\OrderCompleted
每当新的订单完成时都会触发。
public function handle(OrderCompleted $payload) { $payload; }
OrderStatusChanged
Esensdesign\SnipcartWebhooks\Events\OrderStatusChanged
每当订单的状态改变时都会触发。
public function handle(OrderStatusChanged $payload) { $payload; }
OrderPaymentStatusChanged
Esensdesign\SnipcartWebhooks\Events\OrderPaymentStatusChanged
每当订单的支付状态改变时都会触发。
public function handle(OrderPaymentStatusChanged $payload) { $payload; }
OrderTrackingNumberChanged
Esensdesign\SnipcartWebhooks\Events\OrderTrackingNumberChanged
每当订单的跟踪号码改变时都会触发。
public function handle(OrderTrackingNumberChanged $payload) { $payload; }
OrderRefundCreated
Esensdesign\SnipcartWebhooks\Events\OrderRefundCreated
每当订单被退款时都会触发。
public function handle(OrderRefundCreated $payload) { $payload; }
OrderNotificationCreated
Esensdesign\SnipcartWebhooks\Events\OrderNotificationCreated
每当向订单添加通知时都会触发。
public function handle(OrderNotificationCreated $payload) { $payload; }
SubscriptionCreated
Esensdesign\SnipcartWebhooks\Events\SubscriptionCreated
每当创建新的订阅时都会触发。
public function handle(SubscriptionCreated $payload) { $payload; }
SubscriptionCancelled
Esensdesign\SnipcartWebhooks\Events\SubscriptionCancelled
每当订阅被取消时都会触发。
public function handle(SubscriptionCancelled $payload) { $payload; }
SubscriptionPaused
Esensdesign\SnipcartWebhooks\Events\SubscriptionPaused
每当订阅被暂停时都会触发。
public function handle(SubscriptionPaused $payload) { $payload; }
SubscriptionResumed
Esensdesign\SnipcartWebhooks\Events\SubscriptionResumed
每当订阅恢复时都会触发。
public function handle(SubscriptionResumed $payload) { $payload; }
SubscriptionInvoiceCreated
Esensdesign\SnipcartWebhooks\Events\SubscriptionInvoiceCreated
每当向现有订阅添加新的发票时都会触发。
public function handle(SubscriptionInvoiceCreated $payload) { $payload; }
InvalidSignature
Esensdesign\SnipcartWebhooks\Events\InvalidSignature
每当 webhook 请求的签名无效时都会触发。
public function handle(InvalidSignature $request) { $request; }
测试
按如下方式运行测试
vendor/bin/phpunit