© 2025 MiniGenius. Tous droits réservés. RGPD conforme.
// Initialise Supabase
const { createClient } = supabase;
const supabaseClient = createClient(
'https://gxqhyeepbotmitrqviov.supabase.co',
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imd4cWh5ZWVwYm90bWl0cnF2aW92Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzM1MjEzNTksImV4cCI6MjA4OTA5NzM1OX0.iRD-L-Rb-_8R3V_gjXlPsdO7inxgYJ2E2xruXQ7aLBo' // Supabase → Settings → API → anon public
);
// Tes price IDs de Stripe
const PRICES = {
pro_monthly: 'price_1THQRfFe6eSzT8uPEFj4nPsY', // remplace par ton vrai ID
pro_yearly: 'price_1THQSZFe6eSzT8uPFYiBXsu6',
family: 'price_1THQTBFe6eSzT8uPhfAYmvJB',
};
async function startCheckout(planKey) {
const priceId = PRICES[planKey];
// Vérifier si l'utilisateur est connecté
const { data: { user } } = await supabaseClient.auth.getUser();
if (!user) {
// Pas connecté → aller créer un compte d'abord
window.location.href = 'signup.html?plan=' + planKey;
return;
}
// Appeler le backend pour créer la session Stripe
const res = await fetch('https://unsilent-jax-compositive.ngrok-free.dev/stripe/create-checkout', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
priceId: priceId,
userId: user.id,
email: user.email,
}),
});
const { url, error } = await res.json();
if (error) {
alert('Erreur: ' + error);
return;
}
// Ouvrir la page de paiement Stripe
window.location.href = url;
}