public function actionInvoicePay() { $this->layout = 'layouts'; /*if(Yii::$app->user->isGuest){ $this->redirect(Url::toRoute(['photobooks/not-found'])); return; }*/ $id = Yii::$app->request->get('id'); $payment_type = Yii::$app->request->get('payment_type', Invoice::TYPE_LIQPAY); if ($payment_type != Invoice::TYPE_LIQPAY && $payment_type != Invoice::TYPE_CASH) { Yii::$app->getSession()->setFlash('error', Yii::t('app', 'Выбран не известный способ оплаты')); $this->redirect(Url::toRoute(['photobooks/invoice', 'id' => $id])); return; } //Когда типы оплат будут в базе нужно проверять еще выбран ли онлайн или офлайн способ оплаты, если офлайн то генерить ошибку $invoice = new InvoiceForm(); if (!$invoice->loadById($id)) { $this->redirect(Url::toRoute(['photobooks/not-found'])); return; } if ($invoice->status == Invoice::STATUS_PAID || $invoice->status == Invoice::STATUS_CANCEL || $invoice->status == Invoice::STATUS_TIMEOUT) { //Yii::$app->getSession()->setFlash('error', Yii::t('app', 'Счет не действительный для оплаты')); //Может и нужно это $this->redirect(Url::toRoute(['photobooks/invoice', 'id' => $invoice->id])); return; } //Ну тут нам нужно перейти на оплату через выбранный способ if ($payment_type == Invoice::TYPE_LIQPAY) { $allow_currencies = ['USD', 'EUR', 'RUB', 'UAH']; if (!in_array($invoice->currency, $allow_currencies)) { Yii::$app->getSession()->setFlash('error', Yii::t('app', 'Извените, но валюта счета не поддерживается данным методом оплаты. Попробуйте выбрать другой метод оплаты.')); $this->redirect(Url::toRoute(['photobooks/invoice', 'id' => $invoice->id])); return; } $this->redirect(Url::toRoute(['liqpay/pay', 'id' => $invoice->id])); return; } Yii::$app->getSession()->setFlash('error', Yii::t('app', 'Выбран не известный способ оплаты. Пожалуйста попробуйте еще раз. Если проблема будет повторяться свяжитесь с нами.')); $this->redirect(Url::toRoute(['photobooks/invoice', ['id' => $invoice->id]])); //return $this->render('invoice', [ 'invoice'=>$invoice, 'payment_types'=>$payment_types]); }
public function actionClientNotify() { $invoice_id = Yii::$app->request->get('id'); if (!$invoice_id) { $this->redirect(Url::toRoute(['photobooks/not-found'])); return; } $invoice = new InvoiceForm(); if (!$invoice->loadById($invoice_id)) { $this->redirect(Url::toRoute(['photobooks/not-found'])); return; } /*if($invoice->status==Invoice::STATUS_PAID){ Yii::$app->getSession()->setFlash('success', Yii::t('app', 'Оплата получена')); }else{ }*/ $this->redirect(Url::toRoute(['photobooks/invoice', 'id' => $invoice_id])); }