Example #1
0
 /**
  * Post url update the order status
  *
  * @param SafetypayMethod $paymentMethod
  * @param Array           $postData
  */
 public function confirmPayment(SafetypayMethod $paymentMethod, $postData)
 {
     $this->paymentLogger->setPaymentBundle($paymentMethod->getPaymentName());
     $jsonData = json_encode($postData);
     $this->paymentLogger->log('Response: ' . $jsonData);
     $paymentMethod->setReference($postData['MerchantReferenceNo']);
     $paymentMethod->setRequestDateTime($postData['RequestDateTime']);
     $paymentMethod->setSignature($postData['Signature']);
     $paymentBridge = $this->paymentBridge;
     $signature = $this->getSignature($postData, 'RequestDateTime, MerchantReferenceNo', true);
     if ($postData['ApiKey'] !== '' || $postData['Signature'] !== '') {
         if ($this->key == $postData['ApiKey']) {
             if ($postData['Signature'] == $signature) {
                 $this->eventDispatcher->notifyPaymentOrderLoad($paymentBridge, $paymentMethod);
                 $this->eventDispatcher->notifyPaymentOrderSuccess($paymentBridge, $paymentMethod);
             }
         }
     }
 }
 /**
  * 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;
 }
Example #3
0
 /**
  * Construct method
  *
  * @param boolean                $useStage               Use Payu stage servers
  * @param string                 $merchantKey            Merchant Key
  * @param string                 $merchantId             Merchant Id
  * @param Serializer             $serializer             Serializer
  * @param PayuRequestFactory     $requestFactory         Request Factory
  * @param PayuDetailsFactory     $detailsFactory         Details Factory
  * @param PaymentEventDispatcher $paymentEventDispatcher Event dispatcher
  * @param PaymentBridgeInterface $paymentBridge          Payment Bridge
  * @param PaymentLogger          $paymentLogger          Payment Logger
  */
 public function __construct($useStage, $merchantKey, $merchantId, Serializer $serializer, PayuRequestFactory $requestFactory, PayuDetailsFactory $detailsFactory, PaymentEventDispatcher $paymentEventDispatcher, PaymentBridgeInterface $paymentBridge, PaymentLogger $paymentLogger)
 {
     if ($useStage) {
         $this->paymentServer = $this::PAYU_PAYMENT_STAGE_SERVER;
         $this->reportServer = $this::PAYU_REPORT_STAGE_SERVER;
     } else {
         $this->paymentServer = $this::PAYU_PAYMENT_SERVER;
         $this->reportServer = $this::PAYU_REPORT_SERVER;
     }
     $this->useStage = $useStage;
     $this->merchantKey = $merchantKey;
     $this->merchantId = $merchantId;
     $this->serializer = $serializer;
     $this->requestFactory = $requestFactory;
     $this->detailsFactory = $detailsFactory;
     $this->paymentEventDispatcher = $paymentEventDispatcher;
     $this->paymentBridge = $paymentBridge;
     $this->paymentLogger = $paymentLogger;
     $this->paymentLogger->setPaymentBundle(PayuMethod::METHOD_NAME);
 }