public function processAction(Request $request)
    {
        $orderId = $request
            ->query
            ->get('order_id');

        try {
            $this
                ->paypalWebCheckoutManager
                ->processPaypalIPNMessage(
                    $orderId, $request
                    ->request
                    ->all()
                );

            $this
                ->paymentLogger
                ->log(
                    'info',
                    'Paypal payment success. Order number #' . $orderId,
                    'paypal-web-checkout'
                );
        } catch (ParameterNotReceivedException $exception) {
            $this
                ->paymentLogger
                ->log(
                    'error',
                    'Parameter ' . $exception->getMessage() . ' not received. Order number #' . $orderId,
                    'paypal-web-checkout'
                );
        } catch (PaymentException $exception) {
            $this
                ->paymentLogger
                ->log(
                    'error',
                    'Paypal payment error "' . $exception->getMessage() . '". Order number #' . $orderId,
                    'paypal-web-checkout'
                );
        }

        return new Response('OK', 200);
    }