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 [email protected] instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.