Ejemplo n.º 1
0
 public function actionNotify()
 {
     \Yii::info("POST: " . Json::encode(\Yii::$app->request->post()), self::className());
     try {
         if (!\Yii::$app->request->post('OrderId')) {
             throw new Exception('Некорректны запрос от банка.');
         }
         /**
          * @var $shopOrder ShopOrder
          */
         if (!($shopOrder = ShopOrder::findOne(\Yii::$app->request->post('OrderId')))) {
             throw new Exception('Заказ не найден в базе.');
         }
         if ($shopOrder->id != \Yii::$app->request->post('OrderId')) {
             throw new Exception('Не совпадает номер заказа.');
         }
         if ($shopOrder->money->getAmount() != \Yii::$app->request->post('Amount')) {
             throw new Exception('Не совпадает сумма заказа.');
         }
         if (\Yii::$app->request->post('Status') == "CONFIRMED") {
             \Yii::info("Успешный платеж", self::className());
             $shopOrder->processNotePayment();
         }
     } catch (\Exception $e) {
         \Yii::error($e->getMessage(), self::className());
     }
     $this->layout = false;
     return "OK";
 }
Ejemplo n.º 2
0
 public function actionPay()
 {
     /**
      * @var $shopOrder ShopOrder
      */
     $shopOrder = ShopOrder::findOne(\Yii::$app->request->get('id'));
     //TODO: проверки
     return $shopOrder->paySystem->paySystemHandler->paymentResponse($shopOrder);
 }
Ejemplo n.º 3
0
 public function getOrder()
 {
     if (!\Yii::$app->request->post('orderNumber')) {
         throw new Exception('Некорректный запрос от банка. Не указан orderNumber.');
     }
     /**
      * @var $shopOrder ShopOrder
      */
     if (!($shopOrder = ShopOrder::findOne(\Yii::$app->request->post('orderNumber')))) {
         throw new Exception('Заказ не найден в базе.');
     }
     if ($shopOrder->id != \Yii::$app->request->post('orderNumber')) {
         throw new Exception('Не совпадает номер заказа.');
     }
     if ((double) $shopOrder->money->getValue() != (double) \Yii::$app->request->post('orderSumAmount')) {
         throw new Exception('Не совпадает сумма заказа.');
     }
     return $shopOrder;
 }
Ejemplo n.º 4
0
 public function actionIpn()
 {
     $custom = (int) \Yii::$app->request->post('custom');
     \Yii::info('Ipn post data: ' . serialize(\Yii::$app->request->post()), 'paypal');
     \Yii::info('Ipn custom: ' . $custom, 'paypal');
     /*if (!$custom)
       {
           $custom = (int) \Yii::$app->request->get('custom');
       }*/
     if (!$custom) {
         \Yii::error('Order id not found', 'paypal');
         return false;
     }
     $shopOrder = ShopOrder::findOne($custom);
     \Yii::info('Ordder id: ' . $shopOrder->id);
     if (!$shopOrder) {
         \Yii::error('Ordder not found: ' . $custom, 'paypal');
     }
     /**
      * @var $payPal PayPalPaySystem
      * @var $shopOrder ShopOrder
      */
     $payPal = $shopOrder->paySystem->paySystemHandler;
     if (!$payPal instanceof PayPalPaySystem) {
         \Yii::error('Order handler not paypal: ', 'paypal');
     }
     if ($payPal->initIpn()) {
         if ($shopOrder->payed != "Y") {
             \Yii::info('Order processNotePayment', 'paypal');
             $shopOrder->processNotePayment();
         }
         $shopOrder->ps_status = "STATUS_SUCCESS";
         $shopOrder->payed = "Y";
         $shopOrder->save();
     } else {
         \Yii::error('Ipn false: ', 'paypal');
     }
     return "";
 }
Ejemplo n.º 5
0
 /**
  * @param integer $id
  * @return ShopOrder
  * @throws \yii\web\BadRequestHttpException
  */
 protected function loadModel($id)
 {
     $model = ShopOrder::findOne($id);
     if ($model === null) {
         throw new BadRequestHttpException();
     }
     return $model;
 }
Ejemplo n.º 6
0
 public function actionPayPal()
 {
     return $this->render($this->action->id, ['model' => ShopOrder::findOne(\Yii::$app->request->get('id'))]);
 }