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 [email protected] 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