///////////////////////////////////////////////// // LOGGING ///////////////////////////////////////////////// const logger = require("../public/js/app/logger"); logger.info("NOUS SOMMES DANS LE FICHIER : " + __filename, { label: __filename }); ///////////////////////////////////////////////// // APPELS DES MODULES ///////////////////////////////////////////////// const moment = require('moment'); const ejs = require('ejs'); var nodemailer = require('nodemailer'); const path = require("path"); const stripe = require('stripe')(process.env.STRIPE_PRIVATE_KEY); var pdf = require("pdf-creator-node"); var fs = require("fs"); ///////////////////////////////////////////////// // GOOGLE SHEET PARAMETERS ///////////////////////////////////////////////// const { GoogleSpreadsheet } = require('google-spreadsheet'); const GS_creds_rassemblementidf = require('../inscriptionsafps-53b60452f63d.json'); const GS_rassemblementidf = new GoogleSpreadsheet('19Y1M7mZFSJrycQTtNxV2Cmmyz2OaeXHmwCKVCgy1r7Q'); ///////////////////////////////////////////////// // VARIABLES GLOBALES ///////////////////////////////////////////////// ///////////////////////////////////////////////// // PAGE 1 // http://localhost:8888/stagenational/identifier // // RECHERCHE SI PERSONNE DÉJA INSCRITE // SI NON INSCRITE // RECHERCHE SI ADHÉRENTE DANS BD AFPS // ///////////////////////////////////////////////// const RI_checkidentifiant = async function(req, res) { ///////////////////////////////////////////////// // RECHERCHE SI PERSONNE DÉJA INSCRITE // DANS BD DU STAGE ANNUEL logger.info("======================================", { label: __filename }); logger.info("======== FUNCTION RI_checkidentifiant ==========", { label: __filename }); logger.info("======================================", { label: __filename }); await GS_rassemblementidf.useServiceAccountAuth(GS_creds_rassemblementidf); await GS_rassemblementidf.loadInfo(); // loads document properties and worksheets logger.info("NOM FICHIER SHEET: " + GS_rassemblementidf.title, { numsession: req.session.id, label: __filename }); const GS_RI_sheet = GS_rassemblementidf.sheetsByTitle['inscription_web']; logger.info("NOM DU TABLEAU (ONGLET): "+GS_RI_sheet.title, { label: __filename }); //NOM DU TABLEAU (ONGLET) const GS_SN_rows = await GS_RI_sheet.getRows(); // mettre les identifiants dans un array let lesidentifiants = new Array; let compteur = GS_RI_sheet.rowCount - 1; console.log("compteur: ",compteur); for (let i=0; iCliquez ici'; req.session.err_mail_form_adhesion_3 = 'Vous pouvez également adhérer à l\'association de votre pays. Vous trouverez ici les pays européens'; res.redirect('/rassemblementidf/identifier'); } // SI RIEN COCHÉ if (typeof req.body.check_autrepays === 'undefined' && typeof req.body.check_nonadherent === 'undefined') { // ON VA VOIR S'IL EST DANS LA BD DES ADHÉRENTS // BASE DE DONNÉES DES ADHÉRENTS // 2 SHEETS const GS_creds_adhe = require('../testapi336520-3105cc3caa46.json'); const GS_adhe = new GoogleSpreadsheet('1BhpYj-KtsyC8inXIDVl-zldDYRuhEqPwBFvP45FtJkI'); await GS_adhe.useServiceAccountAuth(GS_creds_adhe); await GS_adhe.loadInfo(); // loads document properties and worksheets console.log("NOM FICHIER SHEET: ",GS_adhe.title); //nom du fichier const GS_adh_sheet = GS_adhe.sheetsByTitle['adhesion_annuelle_web']; const GS_adh_sheet_asslocales = GS_adhe.sheetsByTitle['adhesion_ass_locales']; const GS_adh_rows = await GS_adh_sheet.getRows(); const GS_adh_rows_asslocales = await GS_adh_sheet_asslocales.getRows(); let lesidentifiants_adh = new Array; let compteur_adh = GS_adh_sheet.rowCount - 1; let compteur_adh_asslocales = GS_adh_sheet_asslocales.rowCount - 1; // RÉCUPÉRER LES IDENTIFIANTS DU TABLEAU adhesion_annuelle_web for (let i=0; i adherent.identifiant === req.session.identifiant); if (adherent_resultat){ logger.info("Identifiant trouvé dans la base des adhésions : " + adherent_resultat.identifiant, { numsession: req.session.id, label: __filename}); logger.info("Adhésion payé : " + adherent_resultat.Adhesion_paye, { numsession: req.session.id, label: __filename}); if (adherent_resultat.Adhesion_paye === "paye" || adherent_resultat.Adhesion_paye === "attente"){ logger.info("Identifiant trouvé et payé dans la base des adhésions", { numsession: req.session.id, label: __filename}); req.session.err_mail_form_adhesion_1 = "Cet identifiant est bien inscrit dans les adhésions 2022/2023."; req.session.err_mail_form_adhesion_2 = "Nous pouvons donc procéder à l'inscription au Rassemblement IDF 2023."; req.session.err_mail_form_adhesion_3 = "Vous allez être rediriger vers le formulaire."; req.session.association = adherent_resultat.association; console.log("NOM FICHIER SHEET: ",adherent_resultat); console.log("adherent_resultat association : ",adherent_resultat.association); console.log("adherent_resultat identifiant : ",adherent_resultat.identifiant); res.redirect('/rassemblementidf/formulaire'); } else { logger.info("Identifiant trouvé mais NON payé dans la base des adhésions", { numsession: req.session.id, label: __filename }); req.session.err_mail_form_adhesion_1 = "Cet identifiant n'a pas payé l'adhésion 2022/2023."; req.session.err_mail_form_adhesion_2 = "Vous devez adhérer avant de vous inscrire au Rassemblement IDF 2023"; req.session.err_mail_form_adhesion_3 = 'Pour adhérer à l\'association Française pour la Pédagogie Suzuki Cliquez ici'; res.redirect('/rassemblementidf/identifier'); } } else { logger.info("Identifiant NON trouvé dans la base des adhésions", { numsession: req.session.id, label: __filename }); req.session.err_mail_form_adhesion_1 = "Cet identifiant N'EST PAS inscrit dans les adhésions 2022/2023."; req.session.err_mail_form_adhesion_2 = "Vous devez adhérer avant de vous inscrire au Rassemblement IDF 2023"; req.session.err_mail_form_adhesion_3 = 'Pour adhérer à l\'association Française pour la Pédagogie Suzuki Cliquez ici'; res.redirect('/rassemblementidf/identifier'); } } } } else { // IDENTIFIANT NON SAISI req.session.err_mail_form_adhesion_1 = "Etre adhérent (et posséder un identifiant) à une association de la pédagogie Suzuki est obligatoire pour toute famille ou personne qui souhaite participer au Rassemblement IDF 2023"; req.session.err_mail_form_adhesion_2 = 'Pour adhérer à l\'association Française pour la Pédagogie Suzuki Cliquez ici'; req.session.err_mail_form_adhesion_3 = 'Vous pouvez également adhérer à l\'association de votre pays. Vous trouverez ici les pays européens'; res.redirect('/rassemblementidf/identifier'); } } ///////////////////////////////////////////////// // PAGE 2 // http://localhost:8888/stagenational/formulaire // // RECUPERATION CHAMPS SAISIS // CALCUL AGE // CALCUL DU PRIX // AFFICHER PAGE RECAP // ///////////////////////////////////////////////// const RI_checkinfos = async function(req, res) { logger.info("======================================"); logger.info("======== FUNCTION RI_checkinfos =========="); logger.info("======================================"); // RÉCUPÉRATION DES DONNÉES DU FORMULAIRE DANS LA SESSION EN COURS req.session.association = req.body.association; logger.info("req.session.association : " + req.session.association, { numsession: req.session.id, label: __filename }); req.session.adherent_nom = req.body.adherent_nom; logger.info("req.session.adherent_nom : " + req.session.adherent_nom, { numsession: req.session.id, label: __filename }); req.session.adherent_prenom = req.body.adherent_prenom; req.session.adherent_adresse_rue = req.body.adherent_adresse_rue; req.session.adherent_adresse_complement = req.body.adherent_adresse_complement; req.session.adherent_adresse_codepostal = req.body.adherent_adresse_codepostal; req.session.adherent_adresse_ville = req.body.adherent_adresse_ville; req.session.adherent_adresse_pays = req.body.adherent_adresse_pays; req.session.adherent_telephone_mobile = req.body.adherent_telephone_mobile; req.session.adherent_telephone_fixe = req.body.adherent_telephone_fixe; req.session.adherent_mail = req.body.adherent_mail; req.session.accompagnant_nom = req.body.accompagnant_nom; logger.info("req.session.accompagnant_nom : " + req.session.accompagnant_nom, { numsession: req.session.id, label: __filename }); req.session.accompagnant_prenom = req.body.accompagnant_prenom; logger.info("req.session.accompagnant_prenom : " + req.session.accompagnant_prenom, { numsession: req.session.id, label: __filename }); req.session.commentaire_adherent = req.body.commentaire_adherent; //// INITIALISATION DES MONTANTS PAR FAMILLE req.session.cout_rassemblement = 0; req.session.accompte_frais_bancaire = 0; req.session.cout_total = 0; logger.info("req.session.cout_rassemblement = " + req.session.cout_rassemblement, { numsession: req.session.id, label: __filename }); logger.info("req.session.accompte_frais_bancaire = " + req.session.accompte_frais_bancaire, { numsession: req.session.id, label: __filename }); logger.info("req.session.cout_total = " + req.session.cout_total, { numsession: req.session.id, label: __filename }); var nbr_eleve = 0; for (let toto = 1; toto < 7; toto++) { req.session["personne_"+toto+"_nom"] = req.body["personne_"+toto+"_nom"]; logger.info('req.session["personne_"'+toto+'"_nom"] = ' + req.session["personne_"+toto+"_nom"], { numsession: req.session.id, label: __filename }); req.session["personne_"+toto+"_prenom"] = req.body["personne_"+toto+"_prenom"]; logger.info('req.session["personne_"'+toto+'"_prenom"] = ' + req.session["personne_"+toto+"_prenom"], { numsession: req.session.id, label: __filename }); req.session["personne_"+toto+"_datenaissance"] = req.body["personne_"+toto+"_datenaissance"]; logger.info('req.session["personne_"'+toto+'"_datenaissance"] = ' + req.session["personne_"+toto+"_datenaissance"], { numsession: req.session.id, label: __filename }); req.session["personne_"+toto+"_instrument"] = req.body["personne_"+toto+"_instrument"]; logger.info('req.session["personne_"'+toto+'"_instrument"] = ' + req.session["personne_"+toto+"_instrument"], { numsession: req.session.id, label: __filename }); req.session["personne_"+toto+"_cahier"] = req.body["personne_"+toto+"_cahier"]; logger.info('req.session["personne_"'+toto+'"_cahier"] = ' + req.session["personne_"+toto+"_cahier"], { numsession: req.session.id, label: __filename }); req.session["personne_"+toto+"_piece"] = req.body["personne_"+toto+"_piece"]; logger.info('req.session["personne_"'+toto+'"_piece"] = ' + req.session["personne_"+toto+"_piece"], { numsession: req.session.id, label: __filename }); req.session["personne_"+toto+"_prof"] = req.body["personne_"+toto+"_prof"]; logger.info('req.session["personne_"'+toto+'"_prof"] = ' + req.session["personne_"+toto+"_prof"], { numsession: req.session.id, label: __filename }); // CALCUL ÂGE PERSONNE if (req.session["personne_"+toto+"_datenaissance"]) { logger.info('req.session["personne_"'+toto+'"_datenaissance"] : ' + req.session["personne_"+toto+"_datenaissance"], { numsession: req.session.id, label: __filename }); let datenaissance_concat = req.session["personne_"+toto+"_datenaissance"]; logger.info("datenaissance_concat : " + datenaissance_concat, { numsession: req.session.id, label: __filename }); var an=datenaissance_concat.substr(6,4); // l'année (les quatre premiers caractères de la chaîne à partir de 6) var mois=datenaissance_concat.substr(3,2);// On selectionne le mois de la date de naissance var day= datenaissance_concat.substr(0,2); // On selectionne la jour de la date de naissance var birthDate = new Date(an + "-" + mois + "-" + day); var debutrassemblement = new Date('2023-05-07'); logger.info("birthDate : " + birthDate, { numsession: req.session.id, label: __filename }); logger.info("debutrassemblement : " + debutrassemblement, { numsession: req.session.id, label: __filename }); var age = debutrassemblement.getFullYear() - birthDate.getFullYear(); logger.info("age : " + age, { numsession: req.session.id, label: __filename }); var m = debutrassemblement.getMonth() - birthDate.getMonth(); if (m < 0 || (m === 0 && debutrassemblement.getDate() < birthDate.getDate())) { logger.info("debutrassemblement.getDate() = " + debutrassemblement.getDate(), { numsession: req.session.id, label: __filename }); age--; } req.session["personne_"+toto+"_age"] = age; logger.info('req.session["personne_"+toto+"_age"] = ' + req.session["personne_"+toto+"_age"], { numsession: req.session.id, label: __filename }); //// +1 nombre d'élève nbr_eleve++; logger.info('nbr_eleve dans boucle date de naissance : ' + nbr_eleve, { numsession: req.session.id, label: __filename }); } } ///// CALCUL COUT TOTAL logger.info('nbr_eleve TOTAL : ' + nbr_eleve, { numsession: req.session.id, label: __filename }); if (nbr_eleve == 1){ req.session.cout_rassemblement = 31; req.session.accompte_frais_bancaire = 1; req.session.cout_total += req.session.cout_rassemblement + req.session.accompte_frais_bancaire; }; if (nbr_eleve > 1){ req.session.cout_rassemblement = 51; req.session.accompte_frais_bancaire = 1; req.session.cout_total += req.session.cout_rassemblement + req.session.accompte_frais_bancaire; } if (nbr_eleve < 1){ req.session.err_nbr_eleve = "Vous n'avez pas inscrit d'élève"; logger.info('req.session.err_nbr_eleve : ' + req.session.err_nbr_eleve, { numsession: req.session.id, label: __filename }); } if (req.session.err_nbr_eleve) { logger.info("existing session_err_nbr_eleve : " + req.session.err_nbr_eleve, { numsession: req.session.id }); res.redirect('/rassemblementidf/formulaire'); } else { logger.info('req.session.cout_rassemblement : ' + req.session.cout_rassemblement, { numsession: req.session.id, label: __filename }); logger.info('req.session.accompte_frais_bancaire : ' + req.session.accompte_frais_bancaire, { numsession: req.session.id, label: __filename }); logger.info('req.session.cout_total : ' + req.session.cout_total, { numsession: req.session.id, label: __filename }); res.redirect('/rassemblementidf/recap'); } } ///////////////////////////////////////////////// // PAGE 3 // http://localhost:8888/stagenational/recap // // Bouton modifier // ///////////////////////////////////////////////// // CLICK SUR BOUTON MODIFIER const post_recap_modifier = async function(req, res) { res.redirect('/rassemblementidf/identifier'); } ///////////////////////////////////////////////// // PAYER ACCOMPTE // // Enregistrement des infos dans la Google Sheet avant le paiement // (car le redirect après le paiement vers la page "réussi" ou "annulé" initialise une autre session qui fait perdre le cookie précédent et les infos saisies) // Payer accompte par carte bancaire // STIPE // ///////////////////////////////////////////////// // CLICK SUR BOUTON PAYER ACCOMPTE PAGE RECAP const post_payer_ri = async function(req, res, next) { logger.info("======================================"); logger.info("======== FUNCTION post_payer_ri =========="); logger.info("======================================"); ////////////////////////////////// // AJOUT INFO DANS LA GOOGLE SHEET await GS_rassemblementidf.useServiceAccountAuth(GS_creds_rassemblementidf); await GS_rassemblementidf.loadInfo(); // loads document properties and worksheets logger.info("NOM FICHIER SHEET : " + GS_rassemblementidf.title, { numsession: req.session.id, label: __filename }); const GS_RI_sheet = GS_rassemblementidf.sheetsByTitle['inscription_web']; logger.info("NOM DU TABLEAU (ONGLET): " + GS_RI_sheet.title, { numsession: req.session.id, label: __filename }); // DATE DE L'INSCRIPTION moment().format(); moment.locale('fr'); var date_formattee = moment().format('L') console.log("date_formattee:", date_formattee); // AJOUTER UNE LIGNE DANS LA GOOGLE SHEET logger.info("/ AJOUTER UNE LIGNE DANS LA GOOGLE SHEET", { numsession: req.session.id, label: __filename }); logger.info("req.session.identifiant : " + req.session.identifiant, { numsession: req.session.id, label: __filename }); logger.info("req.session.adherent_nom : " + req.session.adherent_nom, { numsession: req.session.id, label: __filename }); const moreRows = await GS_RI_sheet.addRows([ { 'saison': "2022/2023", 'identifiant': req.session.identifiant, 'association_suzuki': req.session.association, 'status_inscription': "clic_bouton_payer", 'inscription_date': date_formattee, 'adherent_nom': req.session.adherent_nom, 'adherent_prenom': req.session.adherent_prenom, 'cout_total': req.session.cout_total, 'cout_rassemblement': req.session.cout_rassemblement, 'frais_bancaire': req.session.accompte_frais_bancaire, 'adherent_adresse_rue': req.session.adherent_adresse_rue, 'adherent_adresse_complement': req.session.adherent_adresse_complement, 'adherent_adresse_codepostal': req.session.adherent_adresse_codepostal, 'adherent_adresse_ville': req.session.adherent_adresse_ville, 'adherent_adresse_pays': req.session.adherent_adresse_pays, 'adherent_telephone_fixe': req.session.adherent_telephone_fixe, 'adherent_telephone_mobile': req.session.adherent_telephone_mobile, 'adherent_mail': req.session.adherent_mail, 'accompagnant_nom': req.session.accompagnant_nom, 'accompagnant_prenom': req.session.accompagnant_prenom, 'commentaire_adherent': req.session.commentaire_adherent, 'personne_1_nom': req.session.personne_1_nom, 'personne_1_prenom': req.session.personne_1_prenom, 'personne_1_datenaissance': req.session.personne_1_datenaissance, 'personne_1_age': req.session.personne_1_age, 'personne_1_instrument': req.session.personne_1_instrument, 'personne_1_cahier': req.session.personne_1_cahier, 'personne_1_piece': req.session.personne_1_piece, 'personne_1_prof': req.session.personne_1_prof, 'personne_2_nom': req.session.personne_2_nom, 'personne_2_prenom': req.session.personne_2_prenom, 'personne_2_datenaissance': req.session.personne_2_datenaissance, 'personne_2_age': req.session.personne_2_age, 'personne_2_instrument': req.session.personne_2_instrument, 'personne_2_cahier': req.session.personne_2_cahier, 'personne_2_piece': req.session.personne_2_piece, 'personne_2_prof': req.session.personne_2_prof, 'personne_3_nom': req.session.personne_3_nom, 'personne_3_prenom': req.session.personne_3_prenom, 'personne_3_datenaissance': req.session.personne_3_datenaissance, 'personne_3_age': req.session.personne_3_age, 'personne_3_instrument': req.session.personne_3_instrument, 'personne_3_cahier': req.session.personne_3_cahier, 'personne_3_piece': req.session.personne_3_piece, 'personne_3_prof': req.session.personne_3_prof, 'personne_4_nom': req.session.personne_4_nom, 'personne_4_prenom': req.session.personne_4_prenom, 'personne_4_datenaissance': req.session.personne_4_datenaissance, 'personne_4_age': req.session.personne_4_age, 'personne_4_instrument': req.session.personne_4_instrument, 'personne_4_cahier': req.session.personne_4_cahier, 'personne_4_piece': req.session.personne_4_piece, 'personne_4_prof': req.session.personne_4_prof, 'personne_5_nom': req.session.personne_5_nom, 'personne_5_prenom': req.session.personne_5_prenom, 'personne_5_datenaissance': req.session.personne_5_datenaissance, 'personne_5_age': req.session.personne_5_age, 'personne_5_instrument': req.session.personne_5_instrument, 'personne_5_cahier': req.session.personne_5_cahier, 'personne_5_piece': req.session.personne_5_piece, 'personne_5_prof': req.session.personne_5_prof, 'personne_6_nom': req.session.personne_6_nom, 'personne_6_prenom': req.session.personne_6_prenom, 'personne_6_datenaissance': req.session.personne_6_datenaissance, 'personne_6_age': req.session.personne_6_age, 'personne_6_instrument': req.session.personne_6_instrument, 'personne_6_cahier': req.session.personne_6_cahier, 'personne_6_piece': req.session.personne_6_piece, 'personne_6_prof': req.session.personne_6_prof, }, ]); ////////////////////////////////// // PAIEMENT STRIPE // STRIPE - ETAPE 1 - CREER l'INTENTION DE PAIEMENT logger.info("// STRIPE - ETAPE 1 - CREER l'INTENTION DE PAIEMENT", { numsession: req.session.id, label: __filename }); logger.info("stripe.VERSION = " + stripe.VERSION, { numsession: req.session.id, label: __filename }); logger.info("stripe._api = " + stripe._api, { numsession: req.session.id, label: __filename }); //console.log(stripe); logger.info("req.session.adherent_mail = " + req.session.adherent_mail, { numsession: req.session.id, label: __filename }); logger.info("// STRIPE - AJOUT METADATA", { numsession: req.session.id, label: __filename }); logger.info("req.session.identifiant = " + req.session.identifiant, { numsession: req.session.id, label: __filename }); logger.info("req.session.cout_rassemblement = " + req.session.cout_rassemblement, { numsession: req.session.id, label: __filename }); logger.info("req.session.accompte_frais_bancaire = " + req.session.accompte_frais_bancaire, { numsession: req.session.id, label: __filename }); logger.info("STRIPE_RI_SUCCESSURL = " + process.env.STRIPE_RI_SUCCESSURL, { numsession: req.session.id, label: __filename }); logger.info("STRIPE_RI_CANCELURL = " + process.env.STRIPE_RI_CANCELURL, { numsession: req.session.id, label: __filename }); logger.info("req.session.cout_total = " + req.session.cout_total, { numsession: req.session.id, label: __filename }); const session = await stripe.checkout.sessions.create({ metadata: {identifiant: req.session.identifiant, cout_rassemblement: req.session.cout_rassemblement, accompte_frais_bancaire: req.session.accompte_frais_bancaire}, customer_email: req.session.adherent_mail, //There are four different submit types. submit_type: 'pay', //success_url: 'http://localhost:8888/inscription/adhesion_paiement/reussi?id={CHECKOUT_SESSION_ID}', //cancel_url: 'http://localhost:8888/inscription/adhesion_paiement/annule?id={CHECKOUT_SESSION_ID}', //success_url: 'https://www.adusuki.juliechaumard.paris/inscription/adhesion_paiement/reussi?id={CHECKOUT_SESSION_ID}', //cancel_url: 'https://www.adusuki.juliechaumard.paris/inscription/adhesion_paiement/annule?id={CHECKOUT_SESSION_ID}', //success_url: 'https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion_paiement/reussi?id={CHECKOUT_SESSION_ID}', //cancel_url: 'https://www.adhesion.afpedagogiesuzuki.fr/inscription/adhesion_paiement/annule?id={CHECKOUT_SESSION_ID}', success_url: process.env.STRIPE_RI_SUCCESSURL, cancel_url: process.env.STRIPE_RI_CANCELURL, payment_method_types: ['card'], line_items: [{ price_data: { currency: 'eur', product_data: { name: 'Rassemblement IDF', }, unit_amount: req.session.cout_total * 100, }, quantity: 1, },], //Checkout has three modes: payment, subscription, or setup. mode: 'payment' }); logger.info("session: " + session, { numsession: req.session.id, label: __filename }); logger.info("session.id: " + session.id, { numsession: req.session.id, label: __filename }); logger.info("session.url: " + session.url, { numsession: req.session.id, label: __filename }); let url_stripe = session.url res.redirect(session.url) } ///////////////////////////////////////////////// // RETOUR PAIEMENT REUSSI const RI_accompte_reussi = async function(req, res){ logger.info("======================================"); logger.info("======== FUNCTION RI_accompte_reussi =========="); logger.info("======================================"); // RETOUR STRIPE var id = req.query.id; logger.info("id : " + id, { numsession: req.session.id, label: __filename }); const session_stripe = await stripe.checkout.sessions.retrieve(id); var customer_email = session_stripe.customer_email; var payment_status = session_stripe.payment_status; var amount_total = session_stripe.amount_total/100; var stripe_customer = session_stripe.customer; var stripe_payment_intent = session_stripe.payment_intent; var payment_method_types = session_stripe.payment_method_types; var stripe_status = session_stripe.status; var identifiant = session_stripe.metadata.identifiant; var cout_rassemblement = session_stripe.metadata.cout_rassemblement; var accompte_frais_bancaire = session_stripe.metadata.accompte_frais_bancaire; var CB_retour = "identifiant_adherent:"+identifiant+",payment_status:"+payment_status+",stripe_customer:"+stripe_customer+",stripe_payment_intent:"+stripe_payment_intent+",sessionID:"+session_stripe.id+",payment_method_types:"+payment_method_types+",amount_total:"+amount_total+",stripe_status:"+stripe_status; console.log("customer_email: ", customer_email); logger.info("payment_status : " + payment_status, { numsession: req.session.id, label: __filename }); logger.info("cout_rassemblement : " + cout_rassemblement, { numsession: req.session.id, label: __filename }); logger.info("accompte_frais_bancaire : " + accompte_frais_bancaire, { numsession: req.session.id, label: __filename }); console.log("stripe_customer: ", stripe_customer); console.log("amount_total: ", amount_total); console.log("stripe_payment_intent: ", stripe_payment_intent); console.log("payment_method_types: ", payment_method_types); console.log("payment_method_types: ", payment_method_types[0]); console.log("stripe_status: ", stripe_status); console.log("CB_retour: ", CB_retour); ////////////////////////////////////////////////////////////////////////////// // RÉCUPÉRATION DES INFOS STAGIAIRES DANS LA GOOGLE SHEET // MISE À JOUR DES INFORMATIONS SUR LE PAIEMENT DANS LA BASE DE DONNÉES GSHEET await GS_rassemblementidf.useServiceAccountAuth(GS_creds_rassemblementidf); await GS_rassemblementidf.loadInfo(); // loads document properties and worksheets logger.info("NOM FICHIER SHEET: " + GS_rassemblementidf.title, { numsession: req.session.id, label: __filename }); const GS_RI_sheet = GS_rassemblementidf.sheetsByTitle['inscription_web']; logger.info("NOM DU TABLEAU (ONGLET): " + GS_RI_sheet.title, { numsession: req.session.id, label: __filename }); // on récupère le contenu de la GSheet dans un array nommé "infos_adherents" const infos_adherents = await GS_RI_sheet.getRows(); // on récupère quelle ligne contient l'identifiant concerné pour mettre à jour cette ligne let list_identifiants = new Array; let compteur = GS_RI_sheet.rowCount - 1; let rowToBeUpdate; logger.info("identifiant TRANSMIS PAR STRIPE :" + identifiant, { numsession: req.session.id, label: __filename }); for (let i=0; i