✏️ 正在编辑: WebhookController.php
路径:
/srv/systems_dir/oakberry/application/controllers/WebhookController.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class WebhookController extends Zend_Controller_Action { public const ERRO_TITLE = 'Ocorreu um erro durante a solicitação.'; public const ERRO_ACCESS_DESCRIPTION = 'Não há autorização para o acesso'; public const ERRO_GENERIC_DESCRIPTION = 'Erro na aplicação'; private $empresaId = null; public function init() { parent::init(); $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); Yuppie_Log::write("Parâmetros recebidos: " . print_r($this->getRequest()->getParams(), true), $this); try { $credentials = Model_Container::getCredential()->authenticateByApiKey($this->getRequest()->getParams()); $this->empresaId = $credentials->empresa_id; } catch (DomainException $throwable) { Yuppie_Log::write(self::ERRO_TITLE . ": " . print_r(getallheaders(), true) . "\n" . $throwable->getMessage() . "\n" . $throwable->getTraceAsString(), $this); $this->_helper->json([ 'error' => self::ERRO_TITLE, 'description' => self::ERRO_ACCESS_DESCRIPTION . " - " . $throwable->getMessage() ]); } catch (Throwable $throwable) { die(self::ERRO_TITLE . ": " . $throwable->getMessage() . "\n" . $throwable->getTraceAsString()); $this->_helper->json([ 'error' => self::ERRO_TITLE, 'description' => self::ERRO_GENERIC_DESCRIPTION ]); } } public function ifoodAction() { $request = $this->getRequest(); Yuppie_Log::write(print_r(getallheaders(), true), $this); } public function messagesAction() { $request = $this->getRequest(); $params = json_decode($request->getRawBody()); if (empty($params->referenceMessageId)) { $this->_helper->json(['error' => 'ID de referência da mensagem não enviado']); } $resposta = Model_Container::getPosvendaResposta()->fetchRow("message_id = '{$params->referenceMessageId}' and dataresposta IS NULL", 'id DESC'); if (!$resposta) { Yuppie_Log::write("Mensagem não localizada ou já respondida " . print_r($params, true), $this); $this->_helper->json(['error' => 'Mensagem não localizada ou já respondida.']); } $resposta->dataresposta = Zend_Date::now()->get('yyyy-MM-dd HH:mm:ss'); $resposta->resposta = $params->listResponseMessage->selectedRowId; $resposta->save(); $dadosPergunta = $resposta->getPergunta(); $empresa = $dadosPergunta->getEmpresa(); try { $whatsapp = \Yuppie_Service_Whatsapp_Factory::load($empresa); $whatsapp->sendReaction($params->phone, "👍", $params->messageId); $whatsapp->sendMessage($params->phone, "_Obrigado pelo feedback!_"); $this->_helper->json(['success' => 'Resposta/reação enviada com sucesso.']); } catch (\Throwable $e) { $whatsapp = null; Yuppie_Log::write("Erro ao enviar resposta/reação à resposta da pesquisa: " . $e->getMessage() . $e->getTraceAsString(), $this); $this->_helper->json(['error' => 'Erro ao enviar resposta/reação à resposta da pesquisa.']); } } public function cadastroSiteAction() { $request = $this->getRequest(); $params = (array)json_decode($request->getRawBody()); $params['empresa_id'] = $this->empresaId; $params['grupo_id'] = $params['grupo_id'] ?: 3;//QR-Code if (!$request->isPost()) { $this->_helper->json(['status' => 0, "error" => "Método não permitido!"]); } if (empty($params['nome']) || empty($params['celular'])) { $this->_helper->json(['status' => 0, "error" => "Nome e celular devem ser informados."]); } try { $model = (new Model_DbTable_Lead())->createRow(); $model->setFromArray($params); $save = $model->save(); if ($save instanceof Model_Lead) { $cupom = $model->notificaBoasVindas($save->id, (int)$params['empresa_id']); $this->_helper->json(['status' => 1, "msg" => "Cadastro realizado com sucesso.", "cupom" => $cupom ?: null]); } elseif ($save) { $cupom = $model->notificaBoasVindas($save, (int)$params['empresa_id']); $this->_helper->json(['status' => 1, "msg" => "Cadastro realizado com sucesso.", "cupom" => $cupom ?: null]); } else { $this->_helper->json(['status' => 0, "error" => "Não foi possível efetuar o cadastro."]); } } catch (Core_Exception $e) { $this->_helper->json(['status' => 0, "error" => $e->getMessage()]); } catch (Exception $e) { Yuppie_Log::write($e->getMessage() . $e->getTraceAsString(), $this); $this->_helper->json(['status' => 0, "error" => "Falha na execução"]); } } }
💾 保存文件
← 返回文件管理器