Skip to content

Laravel webhook allows businesses to send webhooks to their merchants/clients with ease.

License

Notifications You must be signed in to change notification settings

bencoderus/laravel-webhook

Repository files navigation

Laravel webhook preview

Laravel Webhook

Latest Stable Version License Scrutinizer Code Quality Build Status

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.

About

Laravel webhook allows businesses to send webhooks to their merchants/clients with ease.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages