From d5157be9d6c2c050e05c3868a89b2e574548badb Mon Sep 17 00:00:00 2001 From: fomichev Date: Mon, 24 Feb 2025 12:12:50 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?utf8?q?=D0=B8=D0=B5=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC=D0=BB=D0=B5?= =?utf8?q?=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../controllers/NotificationController.php | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 erp24/media/controllers/NotificationController.php diff --git a/erp24/media/controllers/NotificationController.php b/erp24/media/controllers/NotificationController.php new file mode 100644 index 00000000..7c3212f8 --- /dev/null +++ b/erp24/media/controllers/NotificationController.php @@ -0,0 +1,61 @@ +response->format = \yii\web\Response::FORMAT_JSON; + return ['ok']; + } + + public function actionNotification() + { + if (!Yii::$app->request->isPost) { + throw new BadRequestHttpException('Только Post'); + } + + $rawBody = Yii::$app->request->getRawBody(); + $data = Json::decode($rawBody); + + if (!isset($data['notificationType'])) { + throw new BadRequestHttpException('Неверное событие'); + } + + $eventType = $data['notificationType']; + + try { + switch ($eventType) { + case 'PING': + return $this->asJson(['version' => '1', 'name' => 'БазаЦветов24', 'timestamp' => date('Y-m-d H:i:s')]); + + case 'ORDER_CREATED': + break; + + default: + Yii::info("Неизвестный тип события: {$eventType}"); + return $this->asJson(['success' => true, 'message' => 'Unknown event ignored']); + } + + return $this->asJson(['success' => true, 'message' => "Event {$eventType} processed successfully"]); + } catch (\Exception $e) { + Yii::error("Error processing event {$eventType}: " . $e->getMessage()); + return $this->asJson(['success' => false, 'message' => 'Failed to process event']); + } + } +} -- 2.39.5