/**
  * Builds form given success and fail urls
  *
  * @param $responseRoute
  * @return FormBuilder
  */
 public function buildForm($responseRoute)
 {
     $formBuilder = $this->formFactory->createNamedBuilder(null);
     $orderId = $this->paymentBridge->getOrderId() . '#' . date('Ymdhis');
     $fields = array('usuario' => $this->user, 'gran_total' => $this->paymentBridge->getAmount(), 'referencia' => $this->paymentBridge->getOrderDescription(), 'url_respuesta' => $responseRoute);
     //echo $this->cps;die();
     $formKey = $this->encryptor->encrypt(implode('', $fields));
     $formBuilder->setAction($this->gateway)->setMethod('POST')->add('usuario', 'hidden', array('data' => $this->user))->add('gran_total', 'hidden', array('data' => $this->paymentBridge->getAmount()))->add('referencia_ext', 'hidden', array('data' => $this->paymentBridge->getOrderDescription()))->add('url_respuesta', 'hidden', array('data' => $responseRoute))->add('key', 'hidden', array('data' => $formKey))->add('order_id', 'hidden', array('data' => $orderId))->add('Submit', 'hidden', array('data' => 'Pagar'));
     return $formBuilder;
 }
 /**
  * Builds form given success and fail urls
  *
  * @return Form
  */
 public function buildForm($responseRoute, $confirmRoute)
 {
     $extraData = $this->paymentBridge->getExtraData();
     $formBuilder = $this->formFactory->createNamedBuilder(null);
     $key = $this->key;
     $userId = $this->userId;
     $orderId = $this->paymentBridge->getOrderId() . '#' . date('Ymdhis');
     $amount = $this->paymentBridge->getAmount();
     $currency = $this->paymentBridge->getCurrency();
     $signature = "{$key}~{$userId}~{$orderId}~{$amount}~{$currency}";
     $signatureHash = md5($signature);
     $formBuilder->setAction($this->gateway)->setMethod('POST')->add('usuarioId', 'hidden', array('data' => $this->userId))->add('firma', 'hidden', array('data' => $signatureHash))->add('refVenta', 'hidden', array('data' => $orderId))->add('extra1', 'hidden', array('data' => 'pagosonlinegateway'))->add('extra2', 'hidden', array('data' => $this->paymentBridge->getOrder()->getCart()->getId()))->add('descripcion', 'hidden', array('data' => 'description'))->add('valor', 'hidden', array('data' => $this->paymentBridge->getAmount()))->add('moneda', 'hidden', array('data' => $this->paymentBridge->getCurrency()))->add('lng', 'hidden', array('data' => $extraData['language']))->add('iva', 'hidden', array('data' => $extraData['refund_vat']))->add('baseDevolucionIva', 'hidden', array('data' => $extraData['refund_vat']))->add('url_respuesta', 'hidden', array('data' => $responseRoute))->add('url_confirmacion', 'hidden', array('data' => $confirmRoute))->add('prueba', 'hidden', array('data' => $this->test))->add('emailComprador', 'hidden', array('data' => $extraData['customer_email']))->add('paisEnvio', 'hidden', array('data' => 'CO'))->add('Submit', 'hidden', array('data' => 'Pagar'));
     return $formBuilder;
 }
 /**
  * Builds form given success and fail urls
  *
  * @param string $dineromailSuccessUrl    Success route url
  * @param string $dineromailFailUrl       Fail route url
  * @param string $dineromailTransactionId Transaction Id
  *
  * @return Form
  */
 public function buildForm($dineromailSuccessUrl, $dineromailFailUrl, $dineromailTransactionId)
 {
     $extraData = $this->paymentBridge->getExtraData();
     $formBuilder = $this->formFactory->createNamedBuilder(null);
     $formBuilder->setAction($this->endPoint)->setMethod('POST')->add('merchant', 'hidden', array('data' => $this->merchant))->add('country_id', 'hidden', array('data' => $this->country))->add('seller_name', 'hidden', array('data' => $this->sellerName))->add('payment_method_available', 'hidden', array('data' => implode(';', $this->paymentMethodsAvailable)))->add('url_redirect_enabled', 'hidden', array('data' => intval($this->urlRedirectEnabled)))->add('header_image', 'hidden', array('data' => $this->headerImage))->add('amount', 'hidden', array('data' => number_format($this->paymentBridge->getAmount(), 2)))->add('transaction_id', 'hidden', array('data' => $dineromailTransactionId))->add('currency', 'hidden', array('data' => $this->paymentBridge->getCurrency()))->add('buyer_name', 'hidden', array('data' => $extraData['customer_firstname']))->add('buyer_lastname', 'hidden', array('data' => $extraData['customer_lastname']))->add('buyer_email', 'hidden', array('data' => $extraData['customer_email']))->add('buyer_phone', 'hidden', array('data' => $extraData['customer_phone']))->add('language', 'hidden', array('data' => $extraData['language']))->add('ok_url', 'hidden', array('data' => $dineromailSuccessUrl))->add('error_url', 'hidden', array('data' => $dineromailFailUrl))->add('pending_url', 'hidden', array('data' => $dineromailSuccessUrl));
     $iteration = 1;
     /**
      * Every item defined in the PaymentBridge is added as a simple field
      */
     foreach ($extraData['dinero_mail_items'] as $key => $dineroMailItem) {
         $formBuilder->add('item_name_' . $iteration, 'hidden', array('data' => $dineroMailItem['name']))->add('item_quantity_' . $iteration, 'hidden', array('data' => $dineroMailItem['quantity']))->add('item_ammount_' . $iteration, 'hidden', array('data' => $dineroMailItem['amount']))->add('item_currency_' . $iteration, 'hidden', array('data' => $this->paymentBridge->getCurrency()));
         $iteration++;
     }
     return $formBuilder;
 }
 /**
  * Builds form given success and fail urls
  *
  * @param  String                                                     $successRoute
  * @param  String                                                     $failRoute
  * @param  Integer                                                    $safetyPayTransaction
  * @param  SafetypayMethod                                            $paymentMethod
  * @throws \PaymentSuite\PaymentCoreBundle\Exception\PaymentException
  * @return FormBuilder
  */
 public function buildForm($successRoute, $failRoute, $safetyPayTransaction, SafetypayMethod $paymentMethod)
 {
     $formBuilder = $this->formFactory->createNamedBuilder(null);
     $elements = array('Apikey' => $this->key, 'RequestDateTime' => $this->safetyPayManager->getRequestDateTime(), 'CurrencyCode' => $this->paymentBridge->getCurrency(), 'Amount' => number_format($this->paymentBridge->getAmount() / 100, 2, '.', ''), 'MerchantReferenceNo' => $safetyPayTransaction, 'Language' => 'ES', 'TrackingCode' => '', 'ExpirationTime' => $this->expiration, 'FilterBy' => '', 'TransactionOkURL' => $successRoute, 'TransactionErrorURL' => $failRoute, 'ResponseFormat' => $this->safetyPayManager->getresponseFormat());
     $this->paymentLogger->setPaymentBundle($paymentMethod->getPaymentName());
     $jsonData = json_encode($elements);
     $this->paymentLogger->log('Request: ' . $jsonData);
     $elements['signature'] = $this->safetyPayManager->getSignature($elements, 'CurrencyCode, Amount, MerchantReferenceNo, Language,
         TrackingCode, ExpirationTime, TransactionOkURL,
         TransactionErrorURL');
     $paymentMethod->setRequestDateTime($elements['RequestDateTime']);
     $paymentMethod->setSignature($elements['signature']);
     $urlToken = $this->safetyPayManager->getUrlToken($elements, false);
     //Token no valid
     if (strpos($urlToken, 'Error') > 0) {
         throw new PaymentException();
     }
     $urlTokenExploded = explode('?', $urlToken);
     $urlTokenHost = $urlTokenExploded[0];
     $urlTokenParam = $urlTokenExploded[1];
     $urlTokenParamExploded = explode('=', $urlTokenParam);
     $formBuilder->setAction($urlTokenHost)->setMethod('POST')->add('TokenID', 'hidden', array('data' => $urlTokenParamExploded[1]));
     return $formBuilder;
 }