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"; }
public function actionPay() { /** * @var $shopOrder ShopOrder */ $shopOrder = ShopOrder::findOne(\Yii::$app->request->get('id')); //TODO: проверки return $shopOrder->paySystem->paySystemHandler->paymentResponse($shopOrder); }
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; }
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 ""; }
/** * @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; }
public function actionPayPal() { return $this->render($this->action->id, ['model' => ShopOrder::findOne(\Yii::$app->request->get('id'))]); }