Exemplo n.º 1
0
 public function chargeToPaymentRequest(PaymentRequest $paymentRequest, Answer $answer, UserInterface $user)
 {
     $customerEntity = $this->cm->getCustomerByUser($user);
     /** @var Card $cardEntity */
     $cardEntity = $this->em->getRepository(Card::class)->findOneByCustomer($customerEntity);
     /** @var PaymentRequestOrder $orderEntity */
     $orderEntity = $this->em->getRepository(PaymentRequestOrder::class)->findOneByPaymentRequest($paymentRequest);
     $card = $this->bpc->getCard($cardEntity->getBalancedUri());
     $debitData = $card->debits->create(array('amount' => $answer->getCurrentPaymentAmount() * 100, 'order' => $orderEntity->getBalancedUri(), 'appears_on_statement_as' => 'PowerlinePay-' . $this->getAppearsOnStatement($paymentRequest->getUser()), 'description' => 'Powerline Payment: (' . $paymentRequest->getUser()->getOfficialName() . ') - (' . $paymentRequest->getTitle() . ')'));
     $paymentHistory = $this->saveToPaymentHistory($debitData, $customerEntity, $this->cm->getCustomerByUser($paymentRequest->getUser()), $answer->getCurrentPaymentAmount(), $paymentRequest->getId(), $orderEntity->getPublicId());
     if ($paymentHistory->isSucceeded()) {
         $this->es->sendPaymentRequestCharged($paymentHistory, $paymentRequest, $user);
     }
 }
 public function getCurrentPaymentAmount()
 {
     $this->__load();
     return parent::getCurrentPaymentAmount();
 }
 public function updateCrowdfundingPledgedAmount(Answer $answer)
 {
     $this->getEntityManager()->createQuery('UPDATE CivixCoreBundle:Poll\\Question\\PaymentRequest q
             SET q.crowdfundingPledgedAmount = COALESCE(q.crowdfundingPledgedAmount,0) + :amount WHERE q.id = :id')->setParameter('amount', $answer->getCurrentPaymentAmount())->setParameter('id', $answer->getQuestion()->getId())->getSingleScalarResult();
 }
Exemplo n.º 4
0
 public function chargeToPaymentRequest(PaymentRequest $paymentRequest, Answer $answer, UserInterface $user)
 {
     $customer = $this->em->getRepository(Customer::getEntityClassByUser($user))->findOneBy(['user' => $user]);
     $account = $this->em->getRepository(Account::getEntityClassByUser($paymentRequest->getUser()))->findOneBy(['user' => $paymentRequest->getUser()]);
     $charge = new Charge($customer, $account, $paymentRequest->getId());
     $amount = $answer->getCurrentPaymentAmount() * 100;
     $sc = \Stripe\Charge::create(['amount' => $amount, 'application_fee' => ceil($amount * 0.021 + 50), 'currency' => 'usd', 'customer' => $customer->getStripeId(), 'statement_descriptor' => 'PowerlinePay-' . $this->getAppearsOnStatement($paymentRequest->getUser()), 'destination' => $account->getStripeId(), 'description' => 'Powerline Payment: (' . $paymentRequest->getUser()->getOfficialName() . ') - (' . $paymentRequest->getTitle() . ')']);
     $charge->updateStripeData($sc);
     $this->em->persist($charge);
     $this->em->flush($charge);
     return $charge;
 }