56 lines
1.5 KiB
PHP
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']);
|
|
}
|
|
|
|
|
|
} |