type) { case 'payment_intent.succeeded': $paymentIntent = $event->data->object; // contains a \Stripe\PaymentIntent handlePaymentIntentSucceeded($paymentIntent); break; default: // Unexpected event type echo 'Received unknown event type ' . $event->type; } function handlePaymentIntentSucceeded($paymentIntent) { $pdo = db(); // Update payment status in the database $stmt = $pdo->prepare("UPDATE payments SET status = ? WHERE stripe_payment_intent_id = ?"); $stmt->execute(['succeeded', $paymentIntent->id]); // Get user_id from the payment $stmt = $pdo->prepare("SELECT user_id FROM payments WHERE stripe_payment_intent_id = ?"); $stmt->execute([$paymentIntent->id]); $payment = $stmt->fetch(); if ($payment) { $userId = $payment['user_id']; // Update user to premium $stmt = $pdo->prepare("UPDATE users SET is_premium = TRUE WHERE id = ?"); $stmt->execute([$userId]); } } http_response_code(200);