type) { case 'invoice.payment_succeeded': $invoice = $event->data->object; $subscription_id = $invoice->subscription; // Get subscription details try { $subscription = \Stripe\Subscription::retrieve($subscription_id); } catch (\Stripe\Exception\ApiErrorException $e) { // Log error http_response_code(400); exit(); } $end_date = date('Y-m-d H:i:s', $subscription->current_period_end); // Update subscription in database try { $stmt = db()->prepare("UPDATE subscriptions SET status = 'active', end_date = ? WHERE stripe_subscription_id = ?"); $stmt->execute([$end_date, $subscription_id]); } catch (PDOException $e) { // Log error http_response_code(500); exit(); } break; case 'customer.subscription.deleted': $subscription = $event->data->object; $subscription_id = $subscription->id; // Update subscription in database try { $stmt = db()->prepare("UPDATE subscriptions SET status = 'canceled' WHERE stripe_subscription_id = ?"); $stmt->execute([$subscription_id]); } catch (PDOException $e) { // Log error http_response_code(500); exit(); } break; default: // Unexpected event type http_response_code(200); exit(); } http_response_code(200);