/**
  * @param \Generated\Shared\Transfer\PayolutionTransactionResponseTransfer $payolutionTransactionResponseTransfer
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
  *
  * @return void
  */
 protected function checkForErrors(PayolutionTransactionResponseTransfer $payolutionTransactionResponseTransfer, CheckoutResponseTransfer $checkoutResponseTransfer)
 {
     if (PayolutionConstants::REASON_CODE_SUCCESS !== $payolutionTransactionResponseTransfer->getProcessingReasonCode() || PayolutionConstants::STATUS_CODE_SUCCESS !== $payolutionTransactionResponseTransfer->getProcessingStatusCode() || PayolutionConstants::PAYMENT_CODE_PRE_CHECK !== $payolutionTransactionResponseTransfer->getPaymentCode()) {
         $errorCode = (int) preg_replace('/[^\\d]+/', '', $payolutionTransactionResponseTransfer->getProcessingCode());
         $error = new CheckoutErrorTransfer();
         $error->setErrorCode($errorCode)->setMessage($payolutionTransactionResponseTransfer->getProcessingReturn());
         $checkoutResponseTransfer->addError($error);
     }
 }
 /**
  * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
  * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
  *
  * @return \Generated\Shared\Transfer\CheckoutResponseTransfer
  */
 public function execute(QuoteTransfer $quoteTransfer, CheckoutResponseTransfer $checkoutResponseTransfer)
 {
     $transactionStatusLogEntity = $this->getTransactionStatusLog($checkoutResponseTransfer);
     if (!$this->isPreAuthorizationApproved($transactionStatusLogEntity)) {
         $checkoutErrorTransfer = new CheckoutErrorTransfer();
         $checkoutErrorTransfer->setErrorCode(self::ERROR_CODE_PAYMENT_FAILED)->setMessage($transactionStatusLogEntity->getProcessingReason());
         $checkoutResponseTransfer->addError($checkoutErrorTransfer);
         $checkoutResponseTransfer->setIsSuccess(false);
     }
     return $checkoutResponseTransfer;
 }
 /**
  * @return void
  */
 public function testPostConditionChangeErrorRouteIfResponseFalseAndErrorCodeMatches()
 {
     $checkoutResponseTransfer = new CheckoutResponseTransfer();
     $checkoutResponseTransfer->setIsSuccess(false);
     $checkoutErrorTransfer = new CheckoutErrorTransfer();
     $checkoutErrorTransfer->setErrorCode(static::ERROR_CODE_123);
     $checkoutResponseTransfer->addError($checkoutErrorTransfer);
     $checkoutClientMock = $this->getCheckoutClientMock();
     $checkoutClientMock->method('placeOrder')->willReturn($checkoutResponseTransfer);
     $abstractPlaceOrderStepMock = $this->getAbstractPlaceOrderStep($checkoutClientMock);
     $quoteTransfer = new QuoteTransfer();
     $quoteTransfer->setOrderReference(self::ORDER_REFERENCE);
     $abstractPlaceOrderStepMock->execute($this->getRequest(), $quoteTransfer);
     $this->assertFalse($abstractPlaceOrderStepMock->postCondition($quoteTransfer));
     $this->assertSame(self::ESCAPE_ROUTE_123, $abstractPlaceOrderStepMock->getPostConditionErrorRoute());
 }
 /**
  * @param \Generated\Shared\Transfer\ZeroPaymentResultCheckResponseTransfer $resultCheckResponse
  * @return \Generated\Shared\Transfer\CheckoutErrorTransfer
  */
 protected function createCheckoutErrorTransfer(ZeroPaymentResultCheckResponseTransfer $resultCheckResponse)
 {
     $errorTransfer = new CheckoutErrorTransfer();
     $errorTransfer->setMessage($resultCheckResponse->getGeneralErrorMessage());
     return $errorTransfer;
 }