/** * Fail Action * * @return void */ public function paymentCancelAction() { if ($this->request->hasArgument('hash') && !empty($this->request->getArgument('hash'))) { $hash = $this->request->getArgument('hash'); $querySettings = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings::class); $querySettings->setStoragePageIds(array($this->settings['order']['pid'])); $this->cartRepository->setDefaultQuerySettings($querySettings); $this->cart = $this->cartRepository->findOneByFHash($hash); if ($this->cart) { $orderItem = $this->cart->getOrderItem(); $payment = $orderItem->getPayment(); $payment->setStatus('canceled'); $this->paymentRepository->update($payment); $this->persistenceManager->persistAll(); $this->addFlashMessage(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('tx_cart.controller.order.action.payment_cancel.successfully_canceled', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::OK); $this->sendMails($orderItem, 'cancel', __CLASS__, __FUNCTION__); $this->view->assign('orderItem', $orderItem); } else { $this->addFlashMessage(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('tx_cart.controller.order.action.payment_cancel.error_occured', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); } } else { $this->addFlashMessage(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('tx_cart.controller.order.action.payment_cancel.access_denied', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); } }