Spaces:
Running
Running
| <html lang="es"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Banesco - Fallo de Transacción</title> | |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> | |
| <style> | |
| :root { | |
| --banesco-green: #007953; | |
| --banesco-dark: #005a3d; | |
| --banesco-light: #00a378; | |
| --khaki-bg: #8F9779; | |
| --khaki-light: #b5bda8; | |
| --white: #ffffff; | |
| --error-red: #dc3545; | |
| --warning-orange: #fd7e14; | |
| --text-dark: #2c3e50; | |
| --shadow: rgba(0, 0, 0, 0.15); | |
| --glass-bg: rgba(255, 255, 255, 0.95); | |
| } | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: 'Inter', sans-serif; | |
| background: linear-gradient(135deg, var(--khaki-bg) 0%, #7a8565 100%); | |
| min-height: 100vh; | |
| color: var(--text-dark); | |
| line-height: 1.6; | |
| } | |
| /* Header Styles */ | |
| header { | |
| background: linear-gradient(135deg, var(--banesco-green) 0%, var(--banesco-dark) 100%); | |
| color: var(--white); | |
| padding: 1rem 0; | |
| box-shadow: 0 4px 20px var(--shadow); | |
| position: sticky; | |
| top: 0; | |
| z-index: 1000; | |
| backdrop-filter: blur(10px); | |
| } | |
| .header-container { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: 0 2rem; | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| flex-wrap: wrap; | |
| gap: 1rem; | |
| } | |
| .logo-section { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| flex: 1; | |
| } | |
| .logo-input-group { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.5rem; | |
| flex: 1; | |
| max-width: 400px; | |
| } | |
| .logo-input-group label { | |
| font-size: 0.75rem; | |
| opacity: 0.9; | |
| font-weight: 500; | |
| } | |
| .logo-input-group input { | |
| padding: 0.5rem 1rem; | |
| border: 2px solid rgba(255,255,255,0.3); | |
| border-radius: 8px; | |
| background: rgba(255,255,255,0.1); | |
| color: white; | |
| font-size: 0.9rem; | |
| transition: all 0.3s ease; | |
| } | |
| .logo-input-group input::placeholder { | |
| color: rgba(255,255,255,0.6); | |
| } | |
| .logo-input-group input:focus { | |
| outline: none; | |
| border-color: white; | |
| background: rgba(255,255,255,0.2); | |
| } | |
| .logo-display { | |
| height: 50px; | |
| width: auto; | |
| object-fit: contain; | |
| filter: brightness(0) invert(1); | |
| } | |
| .anycoder-badge { | |
| background: rgba(255,255,255,0.2); | |
| padding: 0.5rem 1rem; | |
| border-radius: 20px; | |
| font-size: 0.8rem; | |
| text-decoration: none; | |
| color: white; | |
| transition: all 0.3s ease; | |
| border: 1px solid rgba(255,255,255,0.3); | |
| } | |
| .anycoder-badge:hover { | |
| background: rgba(255,255,255,0.3); | |
| transform: translateY(-2px); | |
| } | |
| /* Navigation */ | |
| nav { | |
| background: rgba(0,0,0,0.1); | |
| padding: 0.5rem 0; | |
| } | |
| .nav-container { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: 0 2rem; | |
| display: flex; | |
| gap: 2rem; | |
| overflow-x: auto; | |
| } | |
| .nav-item { | |
| color: white; | |
| text-decoration: none; | |
| font-weight: 500; | |
| padding: 0.5rem 0; | |
| border-bottom: 2px solid transparent; | |
| transition: all 0.3s; | |
| white-space: nowrap; | |
| } | |
| .nav-item:hover, .nav-item.active { | |
| border-bottom-color: white; | |
| } | |
| /* Main Content */ | |
| main { | |
| max-width: 1200px; | |
| margin: 2rem auto; | |
| padding: 0 2rem; | |
| } | |
| .transaction-container { | |
| display: grid; | |
| grid-template-columns: 1fr; | |
| gap: 2rem; | |
| margin-bottom: 3rem; | |
| } | |
| @media (min-width: 768px) { | |
| .transaction-container { | |
| grid-template-columns: 1fr 1fr; | |
| } | |
| } | |
| /* Alert Card */ | |
| .alert-card { | |
| background: var(--glass-bg); | |
| border-radius: 20px; | |
| padding: 2rem; | |
| box-shadow: 0 10px 40px var(--shadow); | |
| border-left: 6px solid var(--error-red); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .alert-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| right: 0; | |
| width: 200px; | |
| height: 200px; | |
| background: linear-gradient(135deg, transparent 50%, rgba(220, 53, 69, 0.1) 50%); | |
| border-radius: 0 0 0 100%; | |
| } | |
| .alert-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| margin-bottom: 1.5rem; | |
| } | |
| .alert-icon { | |
| width: 60px; | |
| height: 60px; | |
| background: linear-gradient(135deg, var(--error-red), #c82333); | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 2rem; | |
| color: white; | |
| box-shadow: 0 4px 15px rgba(220, 53, 69, 0.4); | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0%, 100% { transform: scale(1); } | |
| 50% { transform: scale(1.05); } | |
| } | |
| .alert-title { | |
| font-size: 1.5rem; | |
| color: var(--error-red); | |
| font-weight: 700; | |
| } | |
| .alert-subtitle { | |
| color: #666; | |
| font-size: 0.9rem; | |
| } | |
| .error-details { | |
| background: rgba(220, 53, 69, 0.05); | |
| border-radius: 12px; | |
| padding: 1.5rem; | |
| margin-top: 1rem; | |
| border: 1px solid rgba(220, 53, 69, 0.2); | |
| } | |
| .error-code { | |
| display: inline-block; | |
| background: var(--error-red); | |
| color: white; | |
| padding: 0.25rem 0.75rem; | |
| border-radius: 20px; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| margin-bottom: 1rem; | |
| } | |
| .error-message { | |
| color: var(--text-dark); | |
| font-size: 1.1rem; | |
| line-height: 1.6; | |
| } | |
| .error-highlight { | |
| color: var(--error-red); | |
| font-weight: 700; | |
| } | |
| /* Account Details Card */ | |
| .details-card { | |
| background: var(--glass-bg); | |
| border-radius: 20px; | |
| padding: 2rem; | |
| box-shadow: 0 10px 40px var(--shadow); | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1.5rem; | |
| } | |
| .card-header { | |
| border-bottom: 2px solid #eee; | |
| padding-bottom: 1rem; | |
| } | |
| .card-title { | |
| font-size: 1.25rem; | |
| color: var(--banesco-green); | |
| font-weight: 700; | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .balance-display { | |
| background: linear-gradient(135deg, var(--banesco-green), var(--banesco-light)); | |
| color: white; | |
| padding: 2rem; | |
| border-radius: 16px; | |
| text-align: center; | |
| box-shadow: 0 8px 25px rgba(0, 121, 83, 0.3); | |
| } | |
| .balance-label { | |
| font-size: 0.9rem; | |
| opacity: 0.9; | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| margin-bottom: 0.5rem; | |
| } | |
| .balance-amount { | |
| font-size: 2.5rem; | |
| font-weight: 700; | |
| text-shadow: 0 2px 4px rgba(0,0,0,0.2); | |
| } | |
| .detail-row { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 1rem; | |
| background: rgba(0,0,0,0.03); | |
| border-radius: 10px; | |
| transition: all 0.3s; | |
| } | |
| .detail-row:hover { | |
| background: rgba(0,0,0,0.05); | |
| transform: translateX(5px); | |
| } | |
| .detail-label { | |
| font-weight: 600; | |
| color: #666; | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .detail-value { | |
| font-weight: 700; | |
| color: var(--text-dark); | |
| font-family: 'Courier New', monospace; | |
| } | |
| .stamp-warning { | |
| background: linear-gradient(135deg, #fff3cd, #ffeeba); | |
| border: 2px solid var(--warning-orange); | |
| border-radius: 12px; | |
| padding: 1.5rem; | |
| margin-top: 1rem; | |
| position: relative; | |
| } | |
| .stamp-warning::before { | |
| content: '⚠️'; | |
| position: absolute; | |
| top: -15px; | |
| left: 20px; | |
| background: white; | |
| padding: 0 10px; | |
| font-size: 1.5rem; | |
| } | |
| .stamp-amount { | |
| font-size: 1.5rem; | |
| color: var(--warning-orange); | |
| font-weight: 700; | |
| text-align: center; | |
| margin-top: 0.5rem; | |
| } | |
| /* Action Buttons */ | |
| .actions { | |
| display: flex; | |
| gap: 1rem; | |
| flex-wrap: wrap; | |
| margin-top: 1rem; | |
| } | |
| .btn { | |
| padding: 1rem 2rem; | |
| border: none; | |
| border-radius: 10px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| transition: all 0.3s; | |
| font-size: 1rem; | |
| flex: 1; | |
| min-width: 200px; | |
| text-align: center; | |
| text-decoration: none; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| } | |
| .btn-primary { | |
| background: linear-gradient(135deg, var(--banesco-green), var(--banesco-light)); | |
| color: white; | |
| box-shadow: 0 4px 15px rgba(0, 121, 83, 0.4); | |
| } | |
| .btn-primary:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(0, 121, 83, 0.6); | |
| } | |
| .btn-secondary { | |
| background: white; | |
| color: var(--banesco-green); | |
| border: 2px solid var(--banesco-green); | |
| } | |
| .btn-secondary:hover { | |
| background: var(--banesco-green); | |
| color: white; | |
| } | |
| .btn-danger { | |
| background: white; | |
| color: var(--error-red); | |
| border: 2px solid var(--error-red); | |
| } | |
| .btn-danger:hover { | |
| background: var(--error-red); | |
| color: white; | |
| } | |
| /* Footer */ | |
| footer { | |
| background: linear-gradient(135deg, var(--banesco-green) 0%, var(--banesco-dark) 100%); | |
| color: white; | |
| padding: 3rem 0 2rem; | |
| margin-top: 4rem; | |
| } | |
| .footer-content { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: 0 2rem; | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); | |
| gap: 2rem; | |
| } | |
| .footer-section h3 { | |
| margin-bottom: 1rem; | |
| font-size: 1.1rem; | |
| opacity: 0.9; | |
| } | |
| .footer-section p, .footer-section a { | |
| color: rgba(255,255,255,0.8); | |
| text-decoration: none; | |
| line-height: 1.8; | |
| font-size: 0.9rem; | |
| } | |
| .footer-section a:hover { | |
| color: white; | |
| text-decoration: underline; | |
| } | |
| .footer-bottom { | |
| text-align: center; | |
| margin-top: 2rem; | |
| padding-top: 2rem; | |
| border-top: 1px solid rgba(255,255,255,0.2); | |
| color: rgba(255,255,255,0.6); | |
| font-size: 0.85rem; | |
| } | |
| /* Responsive */ | |
| @media (max-width: 768px) { | |
| .header-container { | |
| flex-direction: column; | |
| text-align: center; | |
| } | |
| .logo-input-group { | |
| max-width: 100%; | |
| width: 100%; | |
| } | |
| .balance-amount { | |
| font-size: 1.75rem; | |
| } | |
| .alert-title { | |
| font-size: 1.25rem; | |
| } | |
| .nav-container { | |
| gap: 1rem; | |
| } | |
| } | |
| /* Loading Animation */ | |
| .processing { | |
| display: none; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: rgba(0,0,0,0.8); | |
| z-index: 9999; | |
| justify-content: center; | |
| align-items: center; | |
| flex-direction: column; | |
| gap: 2rem; | |
| } | |
| .processing.active { | |
| display: flex; | |
| } | |
| .spinner { | |
| width: 80px; | |
| height: 80px; | |
| border: 6px solid rgba(255,255,255,0.3); | |
| border-top-color: var(--banesco-green); | |
| border-radius: 50%; | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| to { transform: rotate(360deg); } | |
| } | |
| .processing-text { | |
| color: white; | |
| font-size: 1.25rem; | |
| font-weight: 500; | |
| } | |
| /* Icons */ | |
| .icon::before { | |
| display: inline-block; | |
| font-style: normal; | |
| font-variant: normal; | |
| text-rendering: auto; | |
| -webkit-font-smoothing: antialiased; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <!-- Processing Overlay --> | |
| <div class="processing" id="processingOverlay"> | |
| <div class="spinner"></div> | |
| <div class="processing-text">Procesando solicitud...</div> | |
| </div> | |
| <!-- Header --> | |
| <header> | |
| <div class="header-container"> | |
| <div class="logo-section"> | |
| <img src="https://e7.pngegg.com/pngimages/459/23/png-clipart-banesco-venezuelan-bolivar-bank-money-bank-text-payment-thumbnail.png" alt="Banesco Logo" class="logo-display" id="logoImage"> | |
| <div class="logo-input-group"> | |
| <label for="logoUrl">URL del Logo (.png)</label> | |
| <input type="url" id="logoUrl" placeholder="https://e7.pngegg.com/pngimages/459/23/png-clipart-banesco-venezuelan-bolivar-bank-money-bank-text-payment-thumbnail.png" onchange="updateLogo()"> | |
| </div> | |
| </div> | |
| <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank" class="anycoder-badge"> | |
| Built with anycoder 🤗 | |
| </a> | |
| </div> | |
| <nav> | |
| <div class="nav-container"> | |
| <a href="#" class="nav-item">Inicio</a> | |
| <a href="#" class="nav-item">Cuentas</a> | |
| <a href="#" class="nav-item active">Transferencias</a> | |
| <a href="#" class="nav-item">Pagos</a> | |
| <a href="#" class="nav-item">Servicios</a> | |
| <a href="#" class="nav-item">Ayuda</a> | |
| </div> | |
| </nav> | |
| </header> | |
| <!-- Main Content --> | |
| <main> | |
| <div class="transaction-container"> | |
| <!-- Error Alert Section --> | |
| <div class="alert-card"> | |
| <div class="alert-header"> | |
| <div class="alert-icon">✕</div> | |
| <div> | |
| <div class="alert-title">Transacción Fallida</div> | |
| <div class="alert-subtitle">Operación #TXN-7845291</div> | |
| </div> | |
| </div> | |
| <div class="error-details"> | |
| <span class="error-code">ERROR_DOC_001</span> | |
| <p class="error-message"> | |
| No se puede completar la transferencia debido a <span class="error-highlight">documentación incompleta</span>. | |
| El timbre fiscal no está aplicado correctamente a su cuenta. | |
| </p> | |
| </div> | |
| <div class="stamp-warning"> | |
| <h4 style="color: #856404; margin-bottom: 0.5rem;">Timbre Fiscal Requerido</h4> | |
| <p style="color: #856404; font-size: 0.9rem;"> | |
| Para completar transacciones internacionales o de alto valor, es obligatorio tener el timbre fiscal actualizado. | |
| </p> | |
| <div class="stamp-amount"> | |
| €200.00 <small style="font-size: 0.8rem; color: #666;">(Impuesto de Timbre)</small> | |
| </div> | |
| </div> | |
| <div class="actions" style="margin-top: 2rem;"> | |
| <button class="btn btn-primary" onclick="fixStamp()"> | |
| <span>💳</span> Aplicar Timbre Ahora | |
| </button> | |
| <button class="btn btn-secondary" onclick="contactSupport()"> | |
| <span>📞</span> Contactar Soporte | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Account Details Section --> | |
| <div class="details-card"> | |
| <div class="card-header"> | |
| <div class="card-title"> | |
| <span>🏦</span> Detalles de la Cuenta | |
| </div> | |
| </div> | |
| <div class="balance-display"> | |
| <div class="balance-label">Saldo Disponible</div> | |
| <div class="balance-amount">€650,000.00</div> | |
| </div> | |
| <div style="margin-top: 1rem;"> | |
| <div class="detail-row"> | |
| <span class="detail-label"> | |
| <span>📤</span> Cuenta Origen: | |
| </span> | |
| <span class="detail-value">**** **** **** 4521</span> | |
| </div> | |
| <div class="detail-row"> | |
| <span class="detail-label"> | |
| <span>📥</span> Cuenta Destino: | |
| </span> | |
| <span class="detail-value">7546629 01145569604</span> | |
| </div> | |
| <div class="detail-row"> | |
| <span class="detail-label"> | |
| <span>💶</span> Monto a Transferir: | |
| </span> | |
| <span class="detail-value" style="color: var(--banesco-green);">Consultar Saldo</span> | |
| </div> | |
| <div class="detail-row"> | |
| <span class="detail-label"> | |
| <span>📅</span> Fecha: | |
| </span> | |
| <span class="detail-value" id="currentDate"></span> | |
| </div> | |
| <div class="detail-row"> | |
| <span class="detail-label"> | |
| <span>⏱️</span> Estado: | |
| </span> | |
| <span class="detail-value" style="color: var(--error-red);">⏸️ PENDIENTE</span> | |
| </div> | |
| </div> | |
| <div style="background: #f8f9fa; padding: 1rem; border-radius: 10px; margin-top: 1rem; font-size: 0.85rem; color: #666;"> | |
| <strong>Nota:</strong> La transacción permanecerá en estado pendiente durante 24 horas mientras se resuelve la inconsistencia documental. Pasado este tiempo, será cancelada automáticamente. | |
| </div> | |
| <div class="actions"> | |
| <button class="btn btn-danger" onclick="cancelTransaction()"> | |
| <span>🚫</span> Cancelar Operación | |
| </button> | |
| <button class="btn btn-secondary" onclick="downloadReport()"> | |
| <span>📄</span> Descargar Reporte | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Additional Information --> | |
| <div style="background: var(--glass-bg); padding: 2rem; border-radius: 20px; box-shadow: 0 10px 40px var(--shadow); margin-top: 2rem;"> | |
| <h3 style="color: var(--banesco-green); margin-bottom: 1rem;">¿Qué es el Timbre Fiscal?</h3> | |
| <p style="color: #666; line-height: 1.8; margin-bottom: 1rem;"> | |
| El timbre fiscal es un impuesto obligatorio establecido por la normativa bancaria europea para transacciones que exceden ciertos umbrales o que involucran transferencias internacionales. Este impuesto debe estar correctamente registrado en su cuenta antes de realizar operaciones de alto valor. | |
| </p> | |
| <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; margin-top: 1.5rem;"> | |
| <div style="padding: 1rem; background: rgba(0,121,83,0.05); border-radius: 10px; border-left: 4px solid var(--banesco-green);"> | |
| <strong style="color: var(--banesco-green); display: block; margin-bottom: 0.5rem;">Pago Único</strong> | |
| <span style="font-size: 0.9rem; color: #666;">El timbre se paga una sola vez y es válido por 12 meses.</span> | |
| </div> | |
| <div style="padding: 1rem; background: rgba(0,121,83,0.05); border-radius: 10px; border-left: 4px solid var(--banesco-green);"> | |
| <strong style="color: var(--banesco-green); display: block; margin-bottom: 0.5rem;">Cobertura Total</strong> | |
| <span style="font-size: 0.9rem; color: #666;">Cubre todas las transacciones hasta un límite agregado de €5,000,000.</span> | |
| </div> | |
| <div style="padding: 1rem; background: rgba(0,121,83,0.05); border-radius: 10px; border-left: 4px solid var(--banesco-green);"> | |
| <strong style="color: var(--banesco-green); display: block; margin-bottom: 0.5rem;">Proceso Rápido</strong> | |
| <span style="font-size: 0.9rem; color: #666;">Una vez aplicado, la activación es inmediata.</span> | |
| </div> | |
| </div> | |
| </div> | |
| </main> | |
| <!-- Footer --> | |
| <footer> | |
| <div class="footer-content"> | |
| <div class="footer-section"> | |
| <h3>Banesco Banco Universal</h3> | |
| <p>Servicios financieros seguros y confiables para todos sus necesidades bancarias.</p> | |
| <p style="margin-top: 1rem;"> | |
| <strong>Teléfono:</strong> +34 900 123 456<br> | |
| <strong>Email:</strong> soporte@banesco.es | |
| </p> | |
| </div> | |
| <div class="footer-section"> | |
| <h3>Enlaces Rápidos</h3> | |
| <p> | |
| <a href="#">Estado de Cuenta</a><br> | |
| <a href="#">Transferencias Internacionales</a><br> | |
| <a href="#">Documentación Requerida</a><br> | |
| <a href="#">Límites y Comisiones</a> | |
| </p> | |
| </div> | |
| <div class="footer-section"> | |
| <h3>Seguridad</h3> | |
| <p> | |
| <a href="#">Centro de Seguridad</a><br> | |
| <a href="#">Reportar Fraude</a><br> | |
| <a href="#">Política de Privacidad</a><br> | |
| <a href="#">Términos y Condiciones</a> | |
| </p> | |
| </div> | |
| <div class="footer-section"> | |
| <h3>Oficinas</h3> | |
| <p> | |
| Madrid: Calle Mayor 15<br> | |
| Barcelona: Passeig de Gràcia 50<br> | |
| Valencia: Plaza del Ayuntamiento 8 | |
| </p> | |
| </div> | |
| </div> | |
| <div class="footer-bottom"> | |
| <p>© 2024 Banesco Banco Universal. Todos los derechos reservados. | NIF: A12345678</p> | |
| </div> | |
| </footer> | |
| <script> | |
| // Set current date | |
| document.getElementById('currentDate').textContent = new Date().toLocaleDateString('es-ES', { | |
| year: 'numeric', | |
| month: 'long', | |
| day: 'numeric', | |
| hour: '2-digit', | |
| minute: '2-digit' | |
| }); | |
| // Update logo function | |
| function updateLogo() { | |
| const url = document.getElementById('logoUrl').value; | |
| if (url) { | |
| document.getElementById('logoImage').src = url; | |
| } | |
| } | |
| // Show processing overlay | |
| function showProcessing() { | |
| document.getElementById('processingOverlay').classList.add('active'); | |
| } | |
| function hideProcessing() { | |
| document.getElementById('processingOverlay').classList.remove('active'); | |
| } | |
| // Fix stamp action | |
| function fixStamp() { | |
| showProcessing(); | |
| setTimeout(() => { | |
| hideProcessing(); | |
| alert('Redirigiendo al sistema de pagos de timbre fiscal...\n\nSe procederá al cobro de €200.00 para activar el timbre fiscal en su cuenta.\n\nMétodos de pago aceptados:\n- Tarjeta de Débito/Crédito\n- Transferencia bancaria inmediata\n- Domiciliación bancaria'); | |
| }, 1500); | |
| } | |
| // Contact support | |
| function contactSupport() { | |
| const message = `Asunto: Fallo de Transacción - Timbre Fiscal Pendiente\n\nEstimado cliente,\n\nHemos registrado su consulta sobre la transacción fallida #TXN-7845291.\n\nUn agente de soporte se pondrá en contacto con usted en las próximas 24 horas.\n\nMientras tanto, puede:\n1. Aplicar el timbre fiscal automáticamente (€200.00)\n2. Visitar una sucursal física con documentación adicional\n3. Esperar a que un agente le contacte\n\nGracias por su paciencia.`; | |
| alert(message); | |
| } | |
| // Cancel transaction | |
| function cancelTransaction() { | |
| if (confirm('¿Está seguro de que desea cancelar esta transacción?\n\nLa operación #TXN-7845291 será eliminada permanentemente.')) { | |
| showProcessing(); | |
| setTimeout(() => { | |
| hideProcessing(); | |
| alert('Transacción cancelada exitosamente.\n\nSe ha enviado un correo de confirmación a su dirección registrada.'); | |
| // Visual feedback | |
| document.querySelector('.alert-title').textContent = 'Transacción Cancelada'; | |
| document.querySelector('.alert-title').style.color = '#666'; | |
| document.querySelector('.alert-icon').style.background = '#666'; | |
| document.querySelector('.alert-icon').textContent = '✓'; | |
| }, 1500); | |
| } | |
| } | |
| // Download report | |
| function downloadReport() { | |
| const reportContent = ` | |
| REPORTE DE TRANSACCIÓN FALLIDA | |
| =============================== | |
| Banco: Banesco Banco Universal | |
| Fecha: ${new Date().toLocaleString('es-ES')} | |
| DETALLES DE LA OPERACIÓN: | |
| - Número de Transacción: TXN-7845291 | |
| - Estado: FALLIDA - Documentación incompleta | |
| - Cuenta Origen: **** **** **** 4521 | |
| - Cuenta Destino: 7546629 01145569604 | |
| - Saldo Disponible: €650,000.00 | |
| ERROR DETECTADO: | |
| - Código: ERROR_DOC_001 | |
| - Descripción: Timbre fiscal no aplicado | |
| - Solución: Pago de €200.00 para activación del timbre | |
| ACCIONES REQUERIDAS: | |
| 1. Aplicar timbre fiscal (€200.00) | |
| 2. Reintentar la operación | |
| 3. O contactar soporte técnico | |
| Este documento es una constancia oficial del intento de operación. | |
| `; | |
| const blob = new Blob([reportContent], { type: 'text/plain' }); | |
| const url = window.URL.createObjectURL(blob); | |
| const a = document.createElement('a'); | |
| a.href = url; | |
| a.download = `Reporte_Fallo_Transaccion_${Date.now()}.txt`; | |
| a.click(); | |
| window.URL.revokeObjectURL(url); | |
| } | |
| // Add some interactive hover effects | |
| document.querySelectorAll('.detail-row').forEach(row => { | |
| row.addEventListener('mouseenter', function() { | |
| this.style.borderLeft = '4px solid var(--banesco-green)'; | |
| }); | |
| row.addEventListener('mouseleave', function() { | |
| this.style.borderLeft = 'none'; | |
| }); | |
| }); | |
| </script> | |
| </body> | |
| </html> |