fix(pago): try/catch en PagoConfirmado.yaUsado/marcar por tabla faltante
Si pagos_confirmados no existe en producción (migración pendiente), la excepción escapaba hasta handlePhoto y mostraba "Error analizando el comprobante". Safety catch permite que la confirmación proceda aunque la tabla no esté. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
507281e56e
commit
8da7a9fdb4
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user