Files
cheerstothe_season_2.0/app/Http/Controllers/APIs/Customer_API/StripeWebhookController.php
2024-07-03 15:01:53 +05:30

56 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\APIs\Customer_API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Stripe\Event;
use Stripe\Stripe;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\DB;
class StripeWebhookController extends Controller
{
//
public function handleWebhook(Request $request)
{
Log::info('Stripe Webhook Received: ' . $request->getContent());
$payload = $request->getContent();
$sigHeader = $request->header('Stripe-Signature');
$event = null;
try {
$event = Event::constructFrom(
json_decode($payload, true)
);
} catch (\UnexpectedValueException $e) {
// Invalid payload
return response()->json(['error' => 'Invalid payload'], 400);
} catch (\Stripe\Exception\SignatureVerificationException $e) {
// Signature verification failed
return response()->json(['error' => 'Signature verification failed'], 400);
}
if ($event->type === 'checkout.session.completed') {
$session = $event->data->object;
$metadata = $session->metadata;
Log::info('Meta data ' . json_encode($metadata));
$stripeSecret = (config('constants.subscription.stripe_secret_key'));
// $stripe = new StripeClient($stripeSecret);
$stripe = new \Stripe\StripeClient($stripeSecret);
}
return response()->json(['status' => 'Webhook received']);
}
}