resultRedirectFactory->create(ResultFactory::TYPE_REDIRECT); try { $order = $this->orderRepository->get($this->request->getParam('order_id')); if ($order->getCustomerId() == $this->customerSession->getCustomerId() && $order->getState() == Order::STATE_NEW) { $this->orderManagement->cancel($order->getEntityId()); $order->addCommentToStatusHistory('用户主动取消订单', Order::STATE_CANCELED, false); $this->orderRepository->save($order); } else { $this->messageManager->addErrorMessage(__('您不能取消当前订单')); } $this->messageManager->addSuccessMessage(__('You canceled the order.')); } catch (\Exception $e) { $this->messageManager->addErrorMessage(__('You have not canceled the item.')); return $resultRedirect->setPath('sales/order/history'); } return $resultRedirect->setPath('sales/order/view', ['order_id' => $order->getEntityId()]); } }