From 290cdcc7ff0b602b4acce330f1a5d4c6560cefa6 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Fri, 13 Mar 2026 23:39:39 -0500 Subject: [PATCH] fix: detectar rechazo T&C primero para evitar falso positivo con 'no acepto' --- services/BotService.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/BotService.php b/services/BotService.php index 17e9516..7b9b0e9 100644 --- a/services/BotService.php +++ b/services/BotService.php @@ -602,11 +602,11 @@ class BotService { iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $messageText) ?: $messageText )); - // Detectar aceptación: "acepto", "si acepto", "sí, acepto", "1", etc. - $accepted = (bool) preg_match('/\b(acepto|si acepto|si|sí|1|ok|aceptar|de acuerdo|confirmo)\b/', $normalized); + // Detectar rechazo PRIMERO para evitar que "no acepto" haga match en el regex de aceptación + $rejected = (bool) preg_match('/\b(no acepto|no|rechazo|rechazar|negar|0|rechaz[oa])\b/', $normalized); - // Detectar rechazo explícito: "no acepto", "rechazo", "no", "0", etc. - $rejected = !$accepted && (bool) preg_match('/\b(no acepto|no|rechazo|rechazar|negar|0|rechaz[oa])\b/', $normalized); + // Detectar aceptación solo si no hubo rechazo: "acepto", "si acepto", "sí", "1", etc. + $accepted = !$rejected && (bool) preg_match('/\b(acepto|si acepto|si|sí|1|ok|aceptar|de acuerdo|confirmo)\b/', $normalized); if (!$accepted && !$rejected) { // Respuesta no reconocida → volver a preguntar