src/Service/PaymentMethodService.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use Stripe\Customer;
  4. use Stripe\Stripe;
  5. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Psr\Log\LoggerInterface;
  8. use Symfony\Component\Routing\RouterInterface;
  9. class PaymentMethodService {
  10.     protected $tokenStorage;
  11.     protected $entityManager;
  12.     protected $router;
  13.     protected $logger;
  14.     protected $stripeSecret;
  15.     public function __construct($stripeSecretTokenStorageInterface $tokenStorageEntityManagerInterface $entityManagerRouterInterface $routerLoggerInterface $logger) {
  16.         $this->tokenStorage $tokenStorage;
  17.         $this->em $entityManager;
  18.         $this->logger $logger;
  19.         $this->router $router;
  20.         $this->stripeSecret $stripeSecret;
  21.     }
  22.     public function getPaymentMethodForStripeCardId($stripeCardId) {
  23.         $user $this->tokenStorage->getToken() ? $this->tokenStorage->getToken()->getUser() : null;
  24.         $repoPaymentMethod $this->em->getRepository('App\Entity\PaymentMethod');
  25.         return $repoPaymentMethod->findOneBy(['user' => $user'stripeCardId' => $stripeCardId]);
  26.     }
  27.     public function getStripeCardForId($stripeCardId) {
  28.         Stripe::setApiKey($this->stripeSecret);
  29.         $user $this->tokenStorage->getToken() ? $this->tokenStorage->getToken()->getUser() : null;
  30.         $customer $user->getStripeCustomerId() ? Customer::retrieve($user->getStripeCustomerId()) : null;
  31.         return $customer->retrieveSource($user->getStripeCustomerId(), $stripeCardId);
  32.     }
  33. }