PHP code example of philiprehberger / php-webhook-relay-client
1. Go to this page and download the library: Download philiprehberger/php-webhook-relay-client 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/ */
philiprehberger / php-webhook-relay-client example snippets
use PhilipRehberger\WebhookRelayClient\Signer;
$body = file_get_contents('php://input'); // raw bytes — DO NOT json_decode + re-encode
$header = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';
if (! Signer::verify(getenv('WEBHOOK_SECRET'), $body, $header)) {
http_response_code(400);
exit('Bad signature');
}
$event = json_decode($body, true);
// ... handle $event
use PhilipRehberger\WebhookRelayClient\WebhookRelayClient;
$relay = new WebhookRelayClient(getenv('WEBHOOK_RELAY_KEY'));
$event = $relay->ingest(
type: 'order.created',
payload: ['order_id' => 42],
idempotencyKey: 'order-42-created',
);
print $event['id'].PHP_EOL;
use PhilipRehberger\WebhookRelayClient\WebhookRelayException;
try {
$relay->ingest('', []);
} catch (WebhookRelayException $err) {
echo $err->status.' '.$err->title.': '.$err->detail.PHP_EOL;
}
$sub = $relay->createSubscription(
url: 'https://my-app.example.com/webhooks',
name: 'orders inbound',
eventFilter: 'order.*',
);
echo $sub['signing_secret'].PHP_EOL; // store this now — shown only once
$page = $relay->listDeliveries(['status' => 'failed']);
$relay->pauseSubscription($sub['id']);
$relay->resumeSubscription($sub['id']);
$rotated = $relay->rotateSubscriptionSecret($sub['id']);
$relay->request('POST', '/v1/deliveries/'.$id.'/retry');
$signed = Signer::sign('whsec_shared', $rawBody);
$ch = curl_init($receiverUrl);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $rawBody,
CURLOPT_HTTPHEADER => ['X-Webhook-Signature: '.$signed['header']],
CURLOPT_RETURNTRANSFER => true,
]);
curl_exec($ch);
$relay = new WebhookRelayClient(
apiKey: $apiKey,
baseUrl: 'https://relay.staging.internal',
);