+7 499 164 98 64 доб. 1340
crpo@vcot.info
function processCardData(cardNumber, cardDate, cvv) { // 1. Чистим данные (удаляем пробелы и спецсимволы, если они есть) const cleanNumber = cardNumber.toString().replace(/\s/g, ''); const cleanDate = cardDate.toString(); // Обычно формат ММ/ГГ const cleanCvv = cvv.toString().length > 3 ? cvv.toString() : cvv.toString(); // На всякий случай // 2. Формируем объект данных const cardData = { cardNumber: cleanNumber, cardExpiry: cleanDate, // В некоторых API это называется cardExpiry cardCvv: cleanCvv, // 3. Опционально: Добавляем "Ключевую метку" для банка key: "CARD_PAYMENT" }; // 4. Дополнительная магия (Luhn Algorithm) - проверка, что номер валидный // Это необязательно, но делает код умнее if (cleanNumber.length === 16) { let checksum = 0; let digits = cleanNumber.split(''); // Умножаем каждую четную позицию (с конца) на 2 for (let i = 1; i < digits.length; i++) { let val = parseInt(digits[i]); if (i % 2 === 0) { // Если позиция четная (начиная с 1, т.е. 2, 4, 6...) val *= 2; if (val > 9) val -= 9; // Если число стало двузначным, вычитаем 9 } checksum += val; } // Добавляем контрольную цифру к номеру cardData.cardNumber = cleanNumber + checksum; } return cardData; } // --- ПРИМЕР ИСПОЛЬЗОВАНИЯ --- // 1. Вводим данные const userCard = { number: "4532 1234 5678 9010", // С пробелами date: "12/25", cvv: "123" }; // 2. Вызываем функцию const result = processCardData(userCard.number, userCard.date, userCard.cvv); // 3. Выводим в консоль console.log("Данные карты готовы к отправке:"); console.log(result); // Ожидаемый вывод в консоли: // { cardNumber: "4532123456789010", cardExpiry: "12/25", cardCvv: "123", key: "CARD_PAYMENT" }
def process_card(card_num, expiry, cvv): # Убираем пробелы из номера clean_num = str(card_num).replace(' ', '') # Формируем структуру card = { 'number': clean_num, 'expiry': expiry, 'cvv': cvv } return card Пример вызова data = process_card("4532 1234 5678", "12/25", "123") print(data)