Laravel Webhook
Laravel webhook allows businesses to send webhooks to their merchants/clients with ease. This package also introduces a new artisan command to generate a webhook class.
Requirement
- Composer v1.0/2.0
- Php (7.3 and above)
- Laravel (6 and above).
Installation
You can install the package via composer:
composer require bencoderus/laravel-webhook
Setup
Publish basic components. (migrations and configuration files)
php artisan webhook:install
Run migrations
php artisan migrate
Basic usage
Create a new webhook class
php artisan make:webhook PaymentWebhook
Creates a new webhook class in App\Http\Webhooks
You can format your webhook payload like a resource.
public function data(): array
{
return [
'status' => $this->status,
'amount' => $this->amount,
'currency' => 'USD',
];
}
Sending a webhook.
$transaction = Transaction::first();
$webhook = new PaymentWebhook($transaction);
$webhook->url('https://httpbin.com')->send();
Sending with an encrypted signature
$transaction = Transaction::first();
$webhook = new PaymentWebhook($transaction);
$webhook->url('https://httpbin.com')
->withSignature('x-key', 'value_to_hash')
->send();
The default hashing algorithm is sha512 you can change it by passing a different hashing algorithm as the third parameter for the withSignature method. PHP currently supports over 50 hashing algorithms.
Sending webhooks without using a Queue.
By default, all webhooks are dispatched using a queue to facilitate webhook retrial after failure. You can also send
webhooks without using a Queue by passing false
to the send method.
$transaction = Transaction::first();
$webhook = new PaymentWebhook($transaction);
$webhook->url('https://httpbin.com')->send(false);
Testing
composer test
Configuration
- You can enable or disable sending webhook via config/webhook.php.
- You can also enable or disable logging webhook via config/webhook.php and more.
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email me@biduwe.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.