golden hour
/var/softaculous/sitepad/editor/site-data/plugins/kkart-pro/includes/gateways/stripe/stripe-php/lib
⬆️ Go Up
Upload
File/Folder
Size
Actions
Account.php
16.46 KB
Del
OK
AccountLink.php
830 B
Del
OK
AlipayAccount.php
2.33 KB
Del
OK
ApiOperations
-
Del
OK
ApiRequestor.php
18.77 KB
Del
OK
ApiResource.php
3.37 KB
Del
OK
ApiResponse.php
712 B
Del
OK
ApplePayDomain.php
1016 B
Del
OK
ApplicationFee.php
4.1 KB
Del
OK
ApplicationFeeRefund.php
2.44 KB
Del
OK
Balance.php
2.31 KB
Del
OK
BalanceTransaction.php
5.54 KB
Del
OK
BankAccount.php
7.13 KB
Del
OK
BaseStripeClient.php
10.3 KB
Del
OK
BaseStripeClientInterface.php
990 B
Del
OK
BillingPortal
-
Del
OK
BitcoinReceiver.php
4.14 KB
Del
OK
BitcoinTransaction.php
885 B
Del
OK
Capability.php
2.87 KB
Del
OK
Card.php
8.31 KB
Del
OK
Charge.php
12.27 KB
Del
OK
Checkout
-
Del
OK
Collection.php
7.53 KB
Del
OK
CountrySpec.php
1.74 KB
Del
OK
Coupon.php
2.91 KB
Del
OK
CreditNote.php
5.65 KB
Del
OK
CreditNoteLineItem.php
1.85 KB
Del
OK
Customer.php
12.76 KB
Del
OK
CustomerBalanceTransaction.php
5.21 KB
Del
OK
Discount.php
1.5 KB
Del
OK
Dispute.php
5.07 KB
Del
OK
EphemeralKey.php
1.55 KB
Del
OK
ErrorObject.php
8.58 KB
Del
OK
Event.php
13.95 KB
Del
OK
Exception
-
Del
OK
ExchangeRate.php
1.41 KB
Del
OK
File.php
3.79 KB
Del
OK
FileLink.php
1.45 KB
Del
OK
HttpClient
-
Del
OK
Identity
-
Del
OK
Invoice.php
19.26 KB
Del
OK
InvoiceItem.php
3.67 KB
Del
OK
InvoiceLineItem.php
2.84 KB
Del
OK
Issuing
-
Del
OK
LineItem.php
1.16 KB
Del
OK
LoginLink.php
426 B
Del
OK
Mandate.php
1.08 KB
Del
OK
OAuth.php
3.31 KB
Del
OK
OAuthErrorObject.php
861 B
Del
OK
Order.php
5.11 KB
Del
OK
OrderItem.php
333 B
Del
OK
OrderReturn.php
1.65 KB
Del
OK
PaymentIntent.php
11.27 KB
Del
OK
PaymentMethod.php
3.72 KB
Del
OK
Payout.php
6.69 KB
Del
OK
Person.php
5.35 KB
Del
OK
Plan.php
5.55 KB
Del
OK
Price.php
5.13 KB
Del
OK
Product.php
4.02 KB
Del
OK
PromotionCode.php
2.19 KB
Del
OK
Quote.php
8.58 KB
Del
OK
Radar
-
Del
OK
Recipient.php
2.69 KB
Del
OK
RecipientTransfer.php
918 B
Del
OK
Refund.php
4.04 KB
Del
OK
Reporting
-
Del
OK
RequestTelemetry.php
539 B
Del
OK
Review.php
3.34 KB
Del
OK
SKU.php
2.82 KB
Del
OK
Service
-
Del
OK
SetupAttempt.php
2.39 KB
Del
OK
SetupIntent.php
7.05 KB
Del
OK
Sigma
-
Del
OK
SingletonApiResource.php
917 B
Del
OK
Source.php
8.37 KB
Del
OK
SourceTransaction.php
408 B
Del
OK
Stripe.php
7.05 KB
Del
OK
StripeClient.php
3.66 KB
Del
OK
StripeClientInterface.php
586 B
Del
OK
StripeObject.php
18.37 KB
Del
OK
StripeStreamingClientInterface.php
238 B
Del
OK
Subscription.php
11.07 KB
Del
OK
SubscriptionItem.php
5.47 KB
Del
OK
SubscriptionSchedule.php
3.83 KB
Del
OK
TaxCode.php
663 B
Del
OK
TaxId.php
4.79 KB
Del
OK
TaxRate.php
2.88 KB
Del
OK
Terminal
-
Del
OK
ThreeDSecure.php
2.54 KB
Del
OK
Token.php
3.54 KB
Del
OK
Topup.php
3.91 KB
Del
OK
Transfer.php
6.18 KB
Del
OK
TransferReversal.php
3.25 KB
Del
OK
UsageRecord.php
980 B
Del
OK
UsageRecordSummary.php
812 B
Del
OK
Util
-
Del
OK
Webhook.php
1.48 KB
Del
OK
WebhookEndpoint.php
2.26 KB
Del
OK
WebhookSignature.php
4.27 KB
Del
OK
Edit: WebhookSignature.php
<?php namespace Stripe; abstract class WebhookSignature { const EXPECTED_SCHEME = 'v1'; /** * Verifies the signature header sent by Stripe. Throws an * Exception\SignatureVerificationException exception if the verification fails for * any reason. * * @param string $payload the payload sent by Stripe * @param string $header 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\SignatureVerificationException if the verification fails * * @return bool */ public static function verifyHeader($payload, $header, $secret, $tolerance = null) { // Extract timestamp and signatures from header $timestamp = self::getTimestamp($header); $signatures = self::getSignatures($header, self::EXPECTED_SCHEME); if (-1 === $timestamp) { throw Exception\SignatureVerificationException::factory( 'Unable to extract timestamp and signatures from header', $payload, $header ); } if (empty($signatures)) { throw Exception\SignatureVerificationException::factory( 'No signatures found with expected scheme', $payload, $header ); } // Check if expected signature is found in list of signatures from // header $signedPayload = "{$timestamp}.{$payload}"; $expectedSignature = self::computeSignature($signedPayload, $secret); $signatureFound = false; foreach ($signatures as $signature) { if (Util\Util::secureCompare($expectedSignature, $signature)) { $signatureFound = true; break; } } if (!$signatureFound) { throw Exception\SignatureVerificationException::factory( 'No signatures found matching the expected signature for payload', $payload, $header ); } // Check if timestamp is within tolerance if (($tolerance > 0) && (\abs(\time() - $timestamp) > $tolerance)) { throw Exception\SignatureVerificationException::factory( 'Timestamp outside the tolerance zone', $payload, $header ); } return true; } /** * Extracts the timestamp in a signature header. * * @param string $header the signature header * * @return int the timestamp contained in the header, or -1 if no valid * timestamp is found */ private static function getTimestamp($header) { $items = \explode(',', $header); foreach ($items as $item) { $itemParts = \explode('=', $item, 2); if ('t' === $itemParts[0]) { if (!\is_numeric($itemParts[1])) { return -1; } return (int) ($itemParts[1]); } } return -1; } /** * Extracts the signatures matching a given scheme in a signature header. * * @param string $header the signature header * @param string $scheme the signature scheme to look for * * @return array the list of signatures matching the provided scheme */ private static function getSignatures($header, $scheme) { $signatures = []; $items = \explode(',', $header); foreach ($items as $item) { $itemParts = \explode('=', $item, 2); if (\trim($itemParts[0]) === $scheme) { $signatures[] = $itemParts[1]; } } return $signatures; } /** * Computes the signature for a given payload and secret. * * The current scheme used by Stripe ("v1") is HMAC/SHA-256. * * @param string $payload the payload to sign * @param string $secret the secret used to generate the signature * * @return string the signature as a string */ private static function computeSignature($payload, $secret) { return \hash_hmac('sha256', $payload, $secret); } }
Save