public static function handleStagePaymentPay(OrderStageEvent $event) { /** @var Order $order */ $order = $event->eventData()['order']; $paymentType = !empty($order->paymentType) ? $order->paymentType : null; /** @var OrderTransaction $orderTransaction */ $orderTransaction = !empty(OrderTransaction::findLastByOrder($order)) ? OrderTransaction::findLastByOrder($order) : OrderTransaction::createForOrder($order); $hasSuccess = OrderTransaction::find()->where(['order_id' => $order->id])->andWhere(['!=', 'status', OrderTransaction::TRANSACTION_START])->one(); if (null !== $hasSuccess) { $event->addEventData(['__redirect' => Url::toRoute(['/shop/cart/index'])]); } $event->addEventData(['orderTransaction' => $orderTransaction, 'paymentType' => $paymentType]); }