diff --git a/app/Services/PagoValidadorService.php b/app/Services/PagoValidadorService.php index a0959a6..2a9fa12 100755 --- a/app/Services/PagoValidadorService.php +++ b/app/Services/PagoValidadorService.php @@ -75,9 +75,14 @@ class PagoValidadorService // ── 2. Hash único (anti-doble-uso) ───────────────────── $emailHash = sha1($body . $date); - if (PagoConfirmado::yaUsado($emailHash)) { - Log::info("[PagoValidador] Correo #{$i}: ya usado (hash={$emailHash})"); - return ['estado' => 'ya_usado', 'correo' => $datosCorreo, 'motivo' => 'correo_ya_aplicado']; + try { + if (PagoConfirmado::yaUsado($emailHash)) { + Log::info("[PagoValidador] Correo #{$i}: ya usado (hash={$emailHash})"); + return ['estado' => 'ya_usado', 'correo' => $datosCorreo, 'motivo' => 'correo_ya_aplicado']; + } + } catch (\Throwable $e) { + Log::warning('[PagoValidador] Error al verificar hash (tabla pagos_confirmados existe?): ' . $e->getMessage()); + // Continuar sin bloquear — el anti-duplicado no debe impedir confirmaciones } // ── 3. Fecha (mismo día) — solo si ambos tienen fecha ── @@ -110,13 +115,17 @@ class PagoValidadorService Log::info("[PagoValidador] Correo #{$i}: CONFIRMADO (remitente_coincide=" . ($coincideRemitente ? 'SI' : 'NO') . ")"); - PagoConfirmado::marcar($emailHash, [ - 'usuario_id' => $usuarioId, - 'valor' => $valorIA, - 'canal' => $canal, - 'banco' => $datosCorreo['banco'] ?? null, - 'referencia' => $datosPago['referencia'] ?? null, - ]); + try { + PagoConfirmado::marcar($emailHash, [ + 'usuario_id' => $usuarioId, + 'valor' => $valorIA, + 'canal' => $canal, + 'banco' => $datosCorreo['banco'] ?? null, + 'referencia' => $datosPago['referencia'] ?? null, + ]); + } catch (\Throwable $e) { + Log::warning('[PagoValidador] No se pudo marcar hash (tabla pagos_confirmados existe?): ' . $e->getMessage()); + } return [ 'estado' => 'confirmado',