total_1ère

This commit is contained in:
2026-07-20 16:33:04 +02:00
parent dd49ba357b
commit d49cf88d99
275 changed files with 63607 additions and 5599 deletions

View File

@@ -0,0 +1,170 @@
/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("../../public/js/app/logger_lienventetemp");
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
const moment = require('moment');
const ejs = require('ejs');
const nodemailer = require('nodemailer');
const path = require("path");
const fs = require("fs");
const mysql = require('mysql2');
const mysql_promise = require('mysql2/promise');
const stripe = require('stripe')(process.env.STRIPE_PRIVATE_KEY);
////////////////////////////////////////////////////
// FILE NAME
////////////////////////////////////////////////////
const filename = path.parse(__filename).base;
////////////////////////////////////////////////////
// Configuration de la connexion à la base de données
////////////////////////////////////////////////////
const dbConfig = {
host: process.env.db_connection_host,
port: process.env.db_connection_port,
user: process.env.db_connection_user,
password: process.env.db_connection_password,
database: process.env.db_connection_database
};
////////////////////////////////////////////////////
// ÉCRAN 2 - PAIEMENT AVEC STRIPE
////////////////////////////////////////////////////
const post_req_stripe = async function(req, res) {
logger.info("======================================");
logger.info("======== FUNCTION post_req_stripe (vente vidéo) ==========");
logger.info("======================================");
logger.info("======== ENVOIE VERS STRIPE ==========", { label: filename });
try {
// STRIPE - ETAPE 1 - CREER l'INTENTION DE PAIEMENT
const session_stripe = await stripe.checkout.sessions.create({
metadata: {app: "vente_video"},
mode: 'payment',
success_url: process.env.STRIPE_VENTEVIDEO_SUCCESSURL,
cancel_url: process.env.STRIPE_VENTEVIDEO_CANCELURL,
line_items: [{
price_data: {
currency: 'eur',
unit_amount: 800,
product_data: {
name: 'Film du Concert National Suzuki',
description: "Concert au Palais de l'UNESCO Paris du 21 avril 2024 (fichier vidéo H264/mp4)",
},
},
quantity: 1,
}]
});
res.redirect(session_stripe.url)
} catch (error) {
// Echec de connection à la BD
logger.error("Il y a un problème avec la connection Stripe post_req_stripe : " + error, { numsession: req.session.id });
req.session.affiche_err_1 = '"Il y a un problème système, veuillez recommencer, "' + error;
res.redirect('/boutique/videos');
}
}
/////////////////////////////////////////////////
// ÉCRAN 3 - RETOUR STRIPE RÉUSSI
/////////////////////////////////////////////////
const ventevideo_accompte_reussi = async function(req, res) {
logger.info("======================================");
logger.info("======== FUNCTION ventevideo_accompte_reussi ==========");
logger.info("======================================");
//////////////////////////////////////////////////////////////////////////////
// RETOUR STRIPE
let id = req.query.id;
console.log("id = ", id);
const session_stripe = await stripe.checkout.sessions.retrieve(id);
let customer_email = session_stripe.customer_email;
let payment_status = session_stripe.payment_status;
let amount_total = session_stripe.amount_total/100;
let stripe_customer = session_stripe.customer;
let stripe_payment_intent = session_stripe.payment_intent;
let payment_method_types = session_stripe.payment_method_types;
let stripe_status = session_stripe.status;
console.log("payment_status = ", payment_status);
console.log("stripe_customer = ", stripe_customer);
console.log("stripe_payment_intent = ", stripe_payment_intent);
console.log("payment_method_types = ", payment_method_types);
console.log("stripe_status = ", stripe_status);
console.log("customer_email = ", customer_email);
//////////////////////////////////////////////////////////////////////////////
// PRÉPARATION PAGE PAIEMENT RÉUSSI
moment.locale('fr');
let now = moment().format("YYYY-MM-DD HH:mm:ss");
res.locals.today = now;
res.locals.montant = amount_total;
res.locals.mail = customer_email;
//////////////////////////////////////////////////////////////////////////////
// AFFICHAGE PAGE PAIEMENT RÉUSSI
//res.render('don/page_templates/don_paiement_reussi.ejs');
//res.status(200).json({
// success: true,
// message: "Retour de STRIPE réussi",
// data: payment_status
//});
res.render('ventevideo/page_templates/ventelien_paiement_reussi');
}
/////////////////////////////////////////////////
// ÉCRAN 3 - RETOUR STRIPE ECHEC
/////////////////////////////////////////////////
const ventevideo_accompte_annule = async function(req, res) {
logger.info("======================================");
logger.info("======== FUNCTION ventevideo_accompte_annule ==========");
logger.info("======================================");
//////////////////////////////////////////////////////////////////////////////
// RETOUR STRIPE
let id = req.query.id;
const session_stripe = await stripe.checkout.sessions.retrieve(id);
let customer_email = session_stripe.customer_email;
let payment_status = session_stripe.payment_status;
let amount_total = session_stripe.amount_total/100;
let stripe_customer = session_stripe.customer;
let stripe_payment_intent = session_stripe.payment_intent;
let payment_method_types = session_stripe.payment_method_types;
let stripe_status = session_stripe.status;
console.log("payment_status = ", payment_status);
console.log("stripe_customer = ", stripe_customer);
console.log("stripe_payment_intent = ", stripe_payment_intent);
console.log("payment_method_types = ", payment_method_types);
console.log("stripe_status = ", stripe_status);
console.log("customer_email = ", customer_email);
//////////////////////////////////////////////////////////////////////////////
// AFFICHAGE PAGE PAIEMENT ANNULÉE
// res.render('don/page_templates/don_paiement_annule.ejs');
//res.status(200).json({
// success: true,
// message: "Retour de STRIPE échec",
// data: payment_status
//);
res.render('ventevideo/page_templates/ventelien_paiement_echec');
}
module.exports = {
post_req_stripe,
ventevideo_accompte_reussi,
ventevideo_accompte_annule
}