diff options
author | Anton Luka Šijanec <anton@sijanec.eu> | 2022-01-11 12:35:47 +0100 |
---|---|---|
committer | Anton Luka Šijanec <anton@sijanec.eu> | 2022-01-11 12:35:47 +0100 |
commit | 19985dbb8c0aa66dc4bf7905abc1148de909097d (patch) | |
tree | 2cd5a5d20d7e80fc2a51adf60d838d8a2c40999e /vendor/stripe/stripe-php/lib/Webhook.php | |
download | 1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar 1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar.gz 1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar.bz2 1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar.lz 1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar.xz 1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.tar.zst 1ka-19985dbb8c0aa66dc4bf7905abc1148de909097d.zip |
Diffstat (limited to '')
-rw-r--r-- | vendor/stripe/stripe-php/lib/Webhook.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/stripe/stripe-php/lib/Webhook.php b/vendor/stripe/stripe-php/lib/Webhook.php new file mode 100644 index 0000000..b9db2d6 --- /dev/null +++ b/vendor/stripe/stripe-php/lib/Webhook.php @@ -0,0 +1,42 @@ +<?php + +namespace Stripe; + +abstract class Webhook +{ + const DEFAULT_TOLERANCE = 300; + + /** + * Returns an Event instance using the provided JSON payload. Throws an + * Exception\UnexpectedValueException if the payload is not valid JSON, and + * an Exception\SignatureVerificationException if the signature + * verification fails for any reason. + * + * @param string $payload the payload sent by Stripe + * @param string $sigHeader the contents of the signature header sent by + * Stripe + * @param string $secret secret used to generate the signature + * @param int $tolerance maximum difference allowed between the header's + * timestamp and the current time + * + * @throws Exception\UnexpectedValueException if the payload is not valid JSON, + * @throws Exception\SignatureVerificationException if the verification fails + * + * @return Event the Event instance + */ + public static function constructEvent($payload, $sigHeader, $secret, $tolerance = self::DEFAULT_TOLERANCE) + { + WebhookSignature::verifyHeader($payload, $sigHeader, $secret, $tolerance); + + $data = \json_decode($payload, true); + $jsonError = \json_last_error(); + if (null === $data && \JSON_ERROR_NONE !== $jsonError) { + $msg = "Invalid payload: {$payload} " + . "(json_last_error() was {$jsonError})"; + + throw new Exception\UnexpectedValueException($msg); + } + + return Event::constructFrom($data); + } +} |