0% found this document useful (0 votes)
6 views2 pages

Pripra

Uploaded by

niroxn4z1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views2 pages

Pripra

Uploaded by

niroxn4z1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

<!

DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Verificador de Tarjetas</title>
</head>
<body>
<h1>Verificar Tarjetas</h1>
<form id="card-form">
<label for="card-info">Ingresa las tarjetas (formato PIPE):</label><br>
<textarea id="card-info" rows="6" cols="40" placeholder="1234567890123456|
12|23|123|juan@dominio.com"></textarea><br><br>
<button type="submit">Verificar</button>
</form>
<h2>Tarjetas Vivas</h2>
<ul id="alive-cards"></ul>
<h2>Tarjetas Muertas</h2>
<ul id="dead-cards"></ul>

<script src="https://js.stripe.com/v3/"></script>
<script>
const stripe =
Stripe('pk_test_51RIMeB3UH08nzHWo1Y69ScpqMAQRbO7q4Z3ydK6f8v4ZDZ2kb8ZgMtFdnAyfFrFGWw
wWlLDk8naMvaUH3oHiLusY00hurUshYJ'); // Usar clave pública

document.getElementById('card-form').addEventListener('submit', async (e)


=> {
e.preventDefault();

const cardInfo = document.getElementById('card-info').value.trim();


const cardList = cardInfo.split("\n");

console.log('Tarjetas ingresadas:', cardList); // Debug: Ver tarjetas


ingresadas

const aliveCards = [];


const deadCards = [];

// Utilizar Promise.all() para realizar las solicitudes de forma


paralela
const promises = cardList.map(async (card) => {
const cardData = card.split("|");
if (cardData.length !== 5) {
console.log('Formato incorrecto para la tarjeta:', card); //
Debug: Tarjetas con formato incorrecto
return;
}

const cardNumber = cardData[0];


const expiryMonth = cardData[1];
const expiryYear = cardData[2];
const cvc = cardData[3];
const email = cardData[4];

const paymentMethod = await stripe.createPaymentMethod({


type: 'card',
card: {
number: cardNumber,
exp_month: expiryMonth,
exp_year: expiryYear,
cvc: cvc
},
billing_details: {
email: email,
},
});

console.log('Resultado de verificación de tarjeta:',


paymentMethod); // Debug: Ver resultado de Stripe

if (paymentMethod.error) {
deadCards.push(card); // Si hay error, es una tarjeta muerta
} else {
// Si la tarjeta es válida, intentamos realizar el cobro de
0.50 USD
const chargeResult = await fetch('/create-charge', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
payment_method_id: paymentMethod.id,
amount: 50, // 50 centavos (0.50 USD)
})
});

const chargeData = await chargeResult.json();


if (chargeData.success) {
aliveCards.push(card); // Si el cobro fue exitoso, es una
tarjeta viva
} else {
deadCards.push(card); // Si el cobro falló, es una tarjeta
muerta
}
}
});

// Esperar a que todas las promesas se resuelvan


await Promise.all(promises);

// Mostrar tarjetas vivas y muertas


const aliveList = document.getElementById('alive-cards');
const deadList = document.getElementById('dead-cards');
aliveList.innerHTML = aliveCards.map(card =>
`<li>${card}</li>`).join('');
deadList.innerHTML = deadCards.map(card =>
`<li>${card}</li>`).join('');
});
</script>
</body>
</html>

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy