Example #1
0
 /**
  * @see : 3.1.1 PAYLINE-GUIDE-Descriptif des appels webservices.
  * @param Order $order
  * @return RedirectResponse
  * @throws \Exception
  */
 public function doWebPayment(Order $order)
 {
     /** @var Customer $subscriber */
     $customer = $order->getCustomer();
     $array['version'] = self::VERSION;
     $array['returnURL'] = $this->frontRouter->generate('order.placed', ['order_id' => $order->getId()], true);
     $array['cancelURL'] = $this->frontRouter->generate('order.failed', ['order_id' => $order->getId(), 'message' => 'payline'], true);
     $array['notificationURL'] = $this->paylineRouter->generate('payline_notify', ['orderId' => $order->getId()], true);
     $amount = (double) $order->getTotalAmount() * 100;
     $currency = CurrencyNumericCodeQuery::create()->findPk($order->getCurrency()->getCode())->getNumericCode();
     $array['payment']['amount'] = $amount;
     $array['payment']['currency'] = $currency;
     $array['payment']['action'] = '100';
     $array['payment']['mode'] = 'CPT';
     $array['payment']['contractNumber'] = $this->config->getContractNumber();
     $array['order']['ref'] = $order->getRef();
     $array['order']['amount'] = $amount;
     $array['order']['currency'] = $currency;
     $array['order']['date'] = $order->getUpdatedAt()->format('d/m/Y H:m');
     $array['buyer']['lastName'] = $customer->getLastName();
     $array['buyer']['firstName'] = $customer->getFirstName();
     $array['buyer']['email'] = $customer->getEmail();
     $array['securityMode'] = 'SSL';
     $response = $this->payline->doWebPayment($array);
     $code = $response['result']['code'];
     if ($code !== '00000') {
         $message = isset($response['result']['longMessage']) ? $response['result']['longMessage'] : 'Error undefined';
         $this->logger->error($message);
         throw new \Exception($message);
     }
     return new RedirectResponse($response['redirectURL']);
 }
Example #2
0
 public function sendEmailFromOrder(Order $order, $parcelResponses = [])
 {
     $customer = $order->getCustomer();
     $this->mailer->sendEmailToCustomer('mail_tnt_france', $customer, ['customer_id' => $customer->getId(), 'order_id' => $order->getId(), 'order_ref' => $order->getRef(), 'order_date' => $order->getCreatedAt(), 'update_date' => $order->getUpdatedAt(), 'parcel_responses' => $parcelResponses]);
 }