полоса Webhook и Symfony 4 - PullRequest
       3

полоса Webhook и Symfony 4

0 голосов
/ 26 января 2020

Я пытаюсь установить чередующийся веб-крючок в проекте symfony 4 для прослушивания (в бэк-энде) событий, в частности успеха платежа. И выполнить код после получения события. Вот код моего метода

 /**
     *
     * @Route("/confirmation_paiement", name="confirmation_paiement")
     *
     */
    public function confirmationPaiement(Request $request){

        $endpoint_secret = self::WEBHOOK_TEST_KEY;

        $payload = @file_get_contents('php://input');
        $sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];
        $event = null;


        try {
            $event = \Stripe\Webhook::constructEvent(
                $payload, $endpoint_secret
            );

          //, $sig_header
        } catch(\UnexpectedValueException $e) {
            // Invalid payload
            return new Response(Response::HTTP_BAD_REQUEST);
            exit();
        } catch(\Stripe\Exception\SignatureVerificationException $e) {
            // Invalid signature
            return new Response(Response::HTTP_BAD_REQUEST);
            exit();
        }

        // Handle the event
        switch ($event->type) {
            case 'payment_intent.succeeded':
                $paymentIntent = $event->data->object; // contains a StripePaymentIntent
                handlePaymentIntentSucceeded($paymentIntent);
                break;
            case 'payment_method.attached':
                $paymentMethod = $event->data->object; // contains a StripePaymentMethod
                handlePaymentMethodAttached($paymentMethod);
                break;
            // ... handle other event types
            default:
                // Unexpected event type

                return new Response(Response::HTTP_BAD_REQUEST);
                exit();
        }

      return new Response(Response::HTTP_OK);
    }

Проблема в том, что Stripe хорошо распознает URL, но не получает никакого ответа от вызванного метода, тогда как я отправляю ему ответ http типа 200.

А во-вторых, где и как я должен настроить переменную 'HTTP_STRIPE_SIGNATURE'

...