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) ─────────────────────
|
// ── 2. Hash único (anti-doble-uso) ─────────────────────
|
||||||
$emailHash = sha1($body . $date);
|
$emailHash = sha1($body . $date);
|
||||||
|
|
||||||
if (PagoConfirmado::yaUsado($emailHash)) {
|
try {
|
||||||
Log::info("[PagoValidador] Correo #{$i}: ya usado (hash={$emailHash})");
|
if (PagoConfirmado::yaUsado($emailHash)) {
|
||||||
return ['estado' => 'ya_usado', 'correo' => $datosCorreo, 'motivo' => 'correo_ya_aplicado'];
|
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 ──
|
// ── 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') . ")");
|
Log::info("[PagoValidador] Correo #{$i}: CONFIRMADO (remitente_coincide=" . ($coincideRemitente ? 'SI' : 'NO') . ")");
|
||||||
|
|
||||||
PagoConfirmado::marcar($emailHash, [
|
try {
|
||||||
'usuario_id' => $usuarioId,
|
PagoConfirmado::marcar($emailHash, [
|
||||||
'valor' => $valorIA,
|
'usuario_id' => $usuarioId,
|
||||||
'canal' => $canal,
|
'valor' => $valorIA,
|
||||||
'banco' => $datosCorreo['banco'] ?? null,
|
'canal' => $canal,
|
||||||
'referencia' => $datosPago['referencia'] ?? null,
|
'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 [
|
return [
|
||||||
'estado' => 'confirmado',
|
'estado' => 'confirmado',
|
||||||
|
|||||||
Reference in New Issue
Block a user