// netlify/functions/confirm-transfer.js // // Se invoca cuando un alumno elige "Transferencia" y envía el formulario. // Hace dos cosas: // 1) Envía un email al alumno con los datos bancarios y el importe exacto. // 2) Registra la pre-inscripción en Google Sheets como "Pendiente de pago". // // VARIABLES DE ENTORNO (Netlify → Site settings → Environment variables): // RESEND_API_KEY → clave de Resend (resend.com) // SCHOOL_EMAIL_FROM → email remitente verificado en Resend // GOOGLE_SHEETS_WEBHOOK_URL → URL del Google Apps Script publicado // BANK_HOLDER → Titular de la cuenta bancaria // BANK_IBAN → IBAN completo // // SEGURIDAD: BANK_HOLDER y BANK_IBAN se leen aquí en el servidor y se // incluyen únicamente en el email al alumno. NUNCA se devuelven al navegador. // Tabla de precios (debe estar sincronizada con create-checkout.js y el HTML) function calcularPrecioBase(horasSemanales) { if (horasSemanales <= 0) return 0; if (horasSemanales === 1) return 35; if (horasSemanales === 2) return 60; if (horasSemanales === 3) return 80; return 80 + (horasSemanales - 3) * 20; } exports.handler = async function (event) { if (event.httpMethod !== 'POST') { return { statusCode: 405, body: 'Method Not Allowed' }; } try { const data = JSON.parse(event.body); const { nombre, email, telefono, edad, clasesSeleccionadas, horasSemanales } = data; if (!nombre || !email || !horasSemanales) { return { statusCode: 400, body: JSON.stringify({ error: 'Faltan datos obligatorios.' }), }; } const precioBase = calcularPrecioBase(Number(horasSemanales)); // Datos bancarios — solo viven en el servidor const titular = process.env.BANK_HOLDER || '[Titular no configurado]'; const iban = process.env.BANK_IBAN || '[IBAN no configurado]'; // 1) Email al alumno con los datos de transferencia try { await fetch('https://api.resend.com/emails', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.RESEND_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ from: process.env.SCHOOL_EMAIL_FROM, to: email, subject: 'Datos para completar tu inscripción en Dicharm Dance 🏦', html: `
Hemos recibido tu solicitud de plaza. Para confirmarla, realiza la transferencia en los próximos 3 días laborables:
Titular: ${titular}
IBAN: ${iban}
Importe: ${precioBase}€
Concepto: Inscripción Septiembre – ${nombre}
⚠️ Incluye tu nombre completo en el concepto para que podamos identificar el pago fácilmente.
Clases reservadas: ${clasesSeleccionadas}
Horas semanales: ${horasSemanales}h
Una vez confirmemos la recepción del ingreso (24-48h laborables), recibirás otro email con la confirmación definitiva de tu plaza.
¿Tienes alguna duda? Escríbenos a dicharmdance@gmail.com o por WhatsApp.
¡Nos vemos en la pista! 💃🕺
Dicharm Dance · Carrer d'Eusebi Güell 43, Sant Boi de Llobregat