PHP code example of devaction-labs / laravel-webhook-server
1. Go to this page and download the library: Download devaction-labs/laravel-webhook-server library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
devaction-labs / laravel-webhook-server example snippets
return [
/*
* The default queue that should be used to send webhook requests.
*/
'queue' => 'default',
/*
* The default http verb to use.
*/
'http_verb' => 'post',
/*
* This class is responsible for calculating the signature that will be added to
* the headers of the webhook request. A webhook client can use the signature
* to verify the request hasn't been tampered with.
*/
'signer' => \Spatie\WebhookServer\Signer\DefaultSigner::class,
/*
* This is the name of the header where the signature will be added.
*/
'signature_header_name' => 'Signature',
/*
* These are the headers that will be added to all webhook requests.
*/
'headers' => [],
/*
* If a call to a webhook takes longer this amount of seconds
* the attempt will be considered failed.
*/
'timeout_in_seconds' => 3,
/*
* The amount of times the webhook should be called before we give up.
*/
'tries' => 3,
/*
* This class determines how many seconds there should be between attempts.
*/
'backoff_strategy' => \Spatie\WebhookServer\BackoffStrategy\ExponentialBackoffStrategy::class,
/*
* This class is used to dispatch webhooks onto the queue.
*/
'webhook_job' => \Spatie\WebhookServer\CallWebhookJob::class,
/*
* By default we will verify that the ssl certificate of the destination
* of the webhook is valid.
*/
'verify_ssl' => true,
/*
* When set to true, an exception will be thrown when the last attempt fails
*/
'throw_exception_on_failure' => false,
/*
* When using Laravel Horizon you can specify tags that should be used on the
* underlying job that performs the webhook request.
*/
'tags' => [],
];
// payload is the array passed to the `payload` method of the webhook
// secret is the string given to the `signUsingSecret` method on the webhook.
$payloadJson = json_encode($payload);
$signature = hash_hmac('sha256', $payloadJson, $secret);
WebhookCall::create()
->doNotSign()
...
namespace Spatie\WebhookServer\Signer;
interface Signer
{
public function signatureHeaderName(): string;
public function calculateSignature(array $payload, string $secret): string;
}
use Illuminate\Support\Facades\Bus;
use Spatie\WebhookServer\CallWebhookJob;
use Tests\TestCase;
class TestFile extends TestCase
{
public function testJobIsDispatched()
{
Bus::fake();
... Perform webhook call ...
Bus::assertDispatched(CallWebhookJob::class);
}
}
use Illuminate\Support\Facades\Queue;
use Spatie\WebhookServer\CallWebhookJob;
use Tests\TestCase;
class TestFile extends TestCase
{
public function testJobIsQueued()
{
Queue::fake();
... Perform webhook call ...
Queue::assertPushed(CallWebhookJob::class);
}
}