From 78793c559afcd212ed61942e42cf785af19a4526 Mon Sep 17 00:00:00 2001 From: Damian Crisafulli Date: Wed, 16 Feb 2022 18:12:17 -0500 Subject: [PATCH] Pass webhook signing key to Webhook instance --- src/Api/Webhook.php | 10 +++++----- src/Mailgun.php | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Api/Webhook.php b/src/Api/Webhook.php index 9c2565b2..f56c1538 100644 --- a/src/Api/Webhook.php +++ b/src/Api/Webhook.php @@ -32,12 +32,12 @@ class Webhook extends HttpApi /** * @var string */ - private $apiKey; + private $signingKey; - public function __construct(ClientInterface $httpClient, RequestBuilder $requestBuilder, Hydrator $hydrator, string $apiKey) + public function __construct(ClientInterface $httpClient, RequestBuilder $requestBuilder, Hydrator $hydrator, string $signingKey) { parent::__construct($httpClient, $requestBuilder, $hydrator); - $this->apiKey = $apiKey; + $this->signingKey = $signingKey; } /** @@ -48,11 +48,11 @@ public function __construct(ClientInterface $httpClient, RequestBuilder $request */ public function verifyWebhookSignature(int $timestamp, string $token, string $signature): bool { - if (empty($timestamp) || empty($token) || empty($signature)) { + if (empty($timestamp) || empty($token) || empty($signature) || empty($this->signingKey)) { return false; } - $hmac = hash_hmac('sha256', $timestamp.$token, $this->apiKey); + $hmac = hash_hmac('sha256', $timestamp.$token, $this->signingKey); if (function_exists('hash_equals')) { // hash_equals is constant time, but will not be introduced until PHP 5.6 diff --git a/src/Mailgun.php b/src/Mailgun.php index 05c93d12..8b6466b9 100644 --- a/src/Mailgun.php +++ b/src/Mailgun.php @@ -139,9 +139,9 @@ public function tags(): Api\Tag return new Api\Tag($this->httpClient, $this->requestBuilder, $this->hydrator); } - public function webhooks(): Api\Webhook + public function webhooks(string $signingKey = ''): Api\Webhook { - return new Api\Webhook($this->httpClient, $this->requestBuilder, $this->hydrator, $this->apiKey); + return new Api\Webhook($this->httpClient, $this->requestBuilder, $this->hydrator, $signingKey); } public function mailboxes(): Api\Mailboxes