philiprehberger/php-webhook-relay-client
Composer 安装命令:
composer require philiprehberger/php-webhook-relay-client
包简介
PHP SDK + HMAC verifier for the Webhook Relay API
README 文档
README
PHP SDK + HMAC verifier for the Webhook Relay API. PHP 8.2+, zero dependencies (curl + json extensions only).
Installation
composer require philiprehberger/php-webhook-relay-client
Verify an incoming webhook (receiver side)
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
The body must be the exact bytes received. json_encode(json_decode(...)) will reorder keys or change whitespace and break the signature.
The format matches Stripe and Svix (t=<ts>,v1=<hex> over "{ts}.{body}" with HMAC-SHA256), so the same verifier accepts signatures from any sender using that convention.
Send an event (sender side)
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;
The client throws WebhookRelayException on 4xx/5xx with the RFC 7807 problem payload preserved:
use PhilipRehberger\WebhookRelayClient\WebhookRelayException; try { $relay->ingest('', []); } catch (WebhookRelayException $err) { echo $err->status.' '.$err->title.': '.$err->detail.PHP_EOL; }
Subscriptions, deliveries, and the rest
$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']);
For endpoints the typed surface doesn't cover (manual retry, dead-letters, webhook test probe) drop down to request():
$relay->request('POST', '/v1/deliveries/'.$id.'/retry');
Compatible senders
Use Signer::sign() to stand up a compatible sender for testing, or to verify your verifier matches the wire format:
$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);
Pointing at a different host
$relay = new WebhookRelayClient( apiKey: $apiKey, baseUrl: 'https://relay.staging.internal', );
Links
- API: https://api.webhook-relay.dcsuniverse.com
- Docs: https://webhook-relay.dcsuniverse.com
- OpenAPI spec: https://webhook-relay.dcsuniverse.com/openapi.yaml
- Source: https://github.com/philiprehberger/php-webhook-relay-client
License
MIT
philiprehberger/php-webhook-relay-client 适用场景与选型建议
philiprehberger/php-webhook-relay-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 06 月 07 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「signature」 「webhook」 「API-Client」 「verify」 「hmac」 「webhook-relay」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 philiprehberger/php-webhook-relay-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 philiprehberger/php-webhook-relay-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 philiprehberger/php-webhook-relay-client 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Skolkovo API Client
接口签名验证
Inbox pattern process implementation for your Laravel Applications
Digital signature Nova field.
Zoho Sign v1 API PHP Wrapper - PHP 7.4 Ready
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-07