/**
  * approve Authorized & Sale transactions
  *
  * @param  FinancialTransactionInterface $transaction
  *
  * @return ActionRequiredException
  */
 public function createRedirectActionException(FinancialTransactionInterface $transaction)
 {
     $actionRequestException = new ActionRequiredException('User must authorize the transaction');
     $actionRequestException->setFinancialTransaction($transaction);
     $extendedData = $transaction->getExtendedData();
     if (!$extendedData->has('ORDERID')) {
         $extendedData->set('ORDERID', uniqid());
     }
     $additionalData = array();
     foreach (self::getAdditionalDataKeys() as $key) {
         if ($extendedData->has($key)) {
             $additionalData[$key] = $extendedData->get($key);
         }
     }
     $parameters = array_merge(self::normalize($additionalData), $this->redirectionConfig->getRequestParameters($extendedData), $this->designConfig->getRequestParameters($extendedData), array("ORDERID" => $extendedData->get('ORDERID'), "PSPID" => $this->token->getPspid(), "AMOUNT" => $transaction->getRequestedAmount() * 100, "CURRENCY" => $transaction->getPayment()->getPaymentInstruction()->getCurrency(), "LANGUAGE" => $extendedData->get('lang')));
     $parameters['SHASIGN'] = $this->hashGenerator->generate($parameters);
     ksort($parameters);
     $actionRequestException->setAction(new VisitUrl($this->getStandardOrderUrl() . '?' . http_build_query($parameters)));
     return $actionRequestException;
 }
Exemplo n.º 2
0
 /**
  * compares the hash given by ogone with a hash generated by Sha1Out generator
  *
  * @param  array   $values the order values sent by Ogone
  * @param  string  $hash   the hash provided by Ogone with the order values
  *
  * @return boolean         true if the hashes match
  */
 private function isHashValid(array $values, $hash)
 {
     return $this->generator->generate($values) === $hash;
 }