Test Payment

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Payment Status - MBME Pay</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet"> <style> :root { --primary-color: #844693; --primary-dark: #6a3776; --error-color: #dc3545; --error-light: #fbeaec; --text-color: #333333; --text-light: #666666; --border-color: #e0e0e0; --background-light: #f4f1f8; --card-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); --border-radius: 12px; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; background: linear-gradient(135deg, #f4f1f8, #e8dffc); min-height: 100vh; display: flex; flex-direction: column; justify-content: center; color: var(--text-color); line-height: 1.6; padding: 1rem; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .main-content { width: 100%; max-width: 520px; margin: 1rem auto; } .card-container { background-color: #fff; border-radius: var(--border-radius); box-shadow: var(--card-shadow); overflow: hidden; } .header { background: linear-gradient(to right, var(--primary-color), var(--primary-dark)); padding: 1.25rem 1.5rem; display: flex; justify-content: flex-end; align-items: center; } .mbme-logo { height: 36px; filter: brightness(0) invert(1); } .content { padding: 2.5rem 2rem 2rem; text-align: center; } .status-icon { width: 76px; height: 76px; background-color: var(--error-light); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 1.5rem; color: var(--error-color); } .status-icon i { font-size: 36px; } .status-title { font-size: 1.6rem; font-weight: 700; color: var(--text-color); letter-spacing: -0.02em; margin-bottom: 0.5rem; } .status-subtitle { color: var(--text-light); font-size: 0.95rem; font-weight: 400; margin-bottom: 0; } .info-box { background-color: var(--background-light); border-radius: 10px; padding: 1.25rem 1.5rem; margin-top: 1.75rem; text-align: left; } .info-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding: 0.5rem 0; border-bottom: 1px solid var(--border-color); } .info-row:last-child { border-bottom: none; padding-bottom: 0; } .info-row:first-child { padding-top: 0; } .info-label { color: var(--text-light); font-size: 0.875rem; font-weight: 400; white-space: nowrap; flex-shrink: 0; } .info-value { font-weight: 500; font-size: 0.875rem; color: var(--text-color); text-align: right; word-break: break-word; } .dev-notice { margin-top: 1rem; padding: 0.875rem 1.25rem; background-color: #fff8e1; border-left: 3px solid #f5a623; border-radius: 6px; text-align: left; } .dev-notice-label { font-size: 0.75rem; color: #b47a00; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.25rem; } .dev-notice-text { font-size: 0.875rem; color: #7a5500; font-weight: 400; } .footer { padding: 1.25rem 2rem 1.75rem; text-align: center; border-top: 1px solid var(--border-color); margin-top: 0.5rem; } .footer-text { font-size: 0.8rem; color: var(--text-light); } @media (max-width: 480px) { .content { padding: 2rem 1.25rem 1.5rem; } .status-title { font-size: 1.35rem; } .status-icon { width: 64px; height: 64px; } .status-icon i { font-size: 28px; } .footer { padding: 1rem 1.25rem 1.5rem; } } </style> </head> <body> <div class="main-content"> <div class="card-container"> <div class="header"> <img src="/assets/MBME.png" alt="MBME Pay" class="mbme-logo"> </div> <div class="content"> <div class="status-icon"> <i class="fas fa-exclamation-triangle"></i> </div> <h1 class="status-title" id="statusTitle">Payment Interrupted</h1> <p class="status-subtitle" id="statusSubtitle"> Your payment could not be processed at this time. </p> <div class="info-box" id="infoBox"> <div class="info-row" id="statusRow" style="display: none;"> <span class="info-label">Status</span> <span class="info-value" id="statusValue"></span> </div> <div class="info-row" id="messageRow" style="display: none;"> <span class="info-label">Reason</span> <span class="info-value" id="messageValue"></span> </div> <div class="info-row" id="codeRow" style="display: none;"> <span class="info-label">Response Code</span> <span class="info-value" id="codeValue"></span> </div> </div> <div class="dev-notice" id="devNotice" style="display: none;"> <div class="dev-notice-label">Development Info</div> <div class="dev-notice-text" id="devNoticeText"></div> </div> </div> <div class="footer"> <p class="footer-text"> Need help? Contact <strong>MBME Support</strong> for further assistance. </p> </div> </div> </div> <script> (function () { var paymentStatus = 'false'; var message = 'Validation Error'; var onlyInDevelopmentENV = '"timestamp" must be in iso format'; var responseCode = '400'; var isProcessed = paymentStatus === 'true'; if (isProcessed) { document.getElementById('statusTitle').textContent = 'Payment Processed'; document.getElementById('statusSubtitle').textContent = 'The payment was processed. Please contact your provider for further details.'; document.querySelector('.status-icon').style.backgroundColor = '#e8f5ea'; document.querySelector('.status-icon').style.color = '#28a745'; document.querySelector('.status-icon i').className = 'fas fa-check-circle'; } var reason = message && message !== 'undefined' && message !== 'Validation Error' ? message : null; var code = responseCode && responseCode !== 'undefined' && responseCode !== '400' ? responseCode : null; var devMsg = onlyInDevelopmentENV && onlyInDevelopmentENV !== 'undefined' && onlyInDevelopmentENV !== '"timestamp" must be in iso format' ? onlyInDevelopmentENV : null; var hasInfo = reason || code; if (reason) { document.getElementById('statusRow').style.display = 'flex'; document.getElementById('statusValue').textContent = isProcessed ? 'PROCESSED' : 'FAILED'; document.getElementById('messageRow').style.display = 'flex'; document.getElementById('messageValue').textContent = reason; } if (code) { document.getElementById('codeRow').style.display = 'flex'; document.getElementById('codeValue').textContent = code; } if (!hasInfo) { document.getElementById('infoBox').style.display = 'none'; } if (devMsg) { document.getElementById('devNotice').style.display = 'block'; document.getElementById('devNoticeText').textContent = devMsg; } })(); </script> </body> </html>