logger = $logger; $this->container = $container; } public function webhook() { \Stripe\Stripe::setApiKey($this->container->getParameter('stripe_api_key_secret')); $endpoint_secret = $this->container->getParameter('stripe_webhook_key'); $payload = @file_get_contents('php://input'); $sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE']; $event = null; try { $event = \Stripe\Webhook::constructEvent($payload, $sig_header, $endpoint_secret); if ($event->type == 'checkout.session.completed') { $session = $event->data->object; // Fulfill the purchase... if (file_put_contents("/tmp/return_stripe_session", json_encode($session)) !== false) return $this->json("OK", 200); return $this->json("KO", 500); } } catch(\UnexpectedValueException $e) { $this->logger->error($e->getMessage()); exit(); } catch(\Stripe\Error\SignatureVerification $e) { $this->logger->error($e->getMessage()); exit(); } return $this->json("KO", 500); } }