Пример #1
0
 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]);
 }
Пример #2
0
 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]));
 }