src/Controller/Pub/PaymentWebHook.php line 72

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Pub;
  3. use App\Entity\Composition\Composition;
  4. use App\Entity\Profile\PaymentMethod\PaymentGateway;
  5. use App\Entity\Profile\PaymentMethod\PaymentGatewayEvent;
  6. use App\Enums\Constants;
  7. use App\Repository\Composition\CompositionRepository;
  8. use App\Repository\Profile\PaymentMethod\PaymentGatewayEventRepository;
  9. use App\Repository\Profile\PaymentMethod\PaymentGatewayRepository;
  10. use App\Responders\CollectionResponder;
  11. use App\Responders\NoContentResponder;
  12. use App\Service\CompositionService;
  13. use App\Service\PackageService;
  14. use Psr\Log\LoggerInterface;
  15. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  16. use Swagger\Annotations as SWG;
  17. use Symfony\Component\HttpFoundation\HeaderUtils;
  18. use Symfony\Component\HttpFoundation\JsonResponse;
  19. use Symfony\Component\HttpFoundation\Request;
  20. use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
  21. use Symfony\Component\Routing\Annotation\Route;
  22. use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
  23. class PaymentWebHook
  24. {
  25.     /** @var PackageService */
  26.     private $packageService;
  27.     /**
  28.      * @param PackageService $packageService
  29.      */
  30.     public function __construct(PackageService $packageService)
  31.     {
  32.         $this->packageService $packageService;
  33.     }
  34.     /**
  35.      * @Route(path="/payment/{payment_id}/webhook", methods={"POST"})
  36.      *
  37.      * @SWG\Post(
  38.      *    tags={"Public"}
  39.      *  )
  40.      *
  41.      * @ParamConverter("paymentGateway", options={"id"="payment_id"})
  42.      *
  43.      * @SWG\Response(
  44.      *     response=200,
  45.      *     description="Get the paypal webHook"
  46.      * )
  47.      *
  48.      *
  49.      * @param Request $request
  50.      * @param PaymentGateway $paymentGateway
  51.      * @param NoContentResponder $noContentResponder
  52.      * @return JsonResponse
  53.      */
  54.     public function __invoke(
  55.         Request $request,
  56.         PaymentGateway $paymentGateway,
  57.         NoContentResponder $noContentResponder,
  58.         LoggerInterface $logger
  59.     )
  60.     {
  61.         $payload $request->getContent();
  62.         $sigHeader = isset($_SERVER['HTTP_STRIPE_SIGNATURE']) ? $_SERVER['HTTP_STRIPE_SIGNATURE'] : "";
  63.         $logger->info($sigHeader."\n");
  64.         $f fopen("uploads/webhook.txt"'a+');
  65.         fwrite($f$sigHeader."\n");
  66.         fclose($f);
  67.         $this->packageService->processingWebHook($payload$paymentGateway$sigHeader);
  68.         return $noContentResponder();
  69.     }
  70. }