条纹Webhook和Symfony 4

时间:2020-01-26 15:25:39

标签: symfony stripe-payments

我正在尝试在symfony 4项目上安装条纹webhook,以监听(在后端)事件,尤其是付款是否成功。 并在事件接收后执行代码。 这是我的方法的代码

 /**
     *
     * @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,但无法从调用的方法中收到任何响应,而我确实向其发送了类型为200的http响应。

其次,我应该在哪里以及如何配置变量'HTTP_STRIPE_SIGNATURE'

0 个答案:

没有答案