total_1ère
This commit is contained in:
BIN
controllers/vente_video/files/film_suzuki_unesco_2024.mp4
Normal file
BIN
controllers/vente_video/files/film_suzuki_unesco_2024.mp4
Normal file
Binary file not shown.
BIN
controllers/vente_video/files/film_suzuki_unesco_2024_test.mp4
Normal file
BIN
controllers/vente_video/files/film_suzuki_unesco_2024_test.mp4
Normal file
Binary file not shown.
1
controllers/vente_video/files/yourfile.txt
Normal file
1
controllers/vente_video/files/yourfile.txt
Normal file
@@ -0,0 +1 @@
|
||||
test jujue
|
||||
127
controllers/vente_video/generate_linkController copie.js
Normal file
127
controllers/vente_video/generate_linkController copie.js
Normal file
@@ -0,0 +1,127 @@
|
||||
/////////////////////////////////////////////////
|
||||
// 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');
|
||||
////////////////////////////////////////////////////
|
||||
// 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
|
||||
};
|
||||
|
||||
|
||||
// Stockage des fichiers avec une date d'expiration
|
||||
const fileLinks = {};
|
||||
|
||||
// DATE
|
||||
moment.locale('fr');
|
||||
var date_formattee = moment().format('L')
|
||||
var today = date_formattee;
|
||||
|
||||
const generate_link = async function(req, res) {
|
||||
|
||||
try {
|
||||
// CONNEXION A LA BD
|
||||
const db_connection_promise = await mysql_promise.createConnection(dbConfig);
|
||||
|
||||
const linkId = Date.now();
|
||||
const filePath = path.join(__dirname, 'files', 'film_suzuki_unesco_2024.mp4'); // Chemin du fichier
|
||||
let expiresAt = new Date(Date.now() + 24 * 60 * 60 * 1000); // 24 heures à partir de maintenant
|
||||
// Format de la date pour MySQL
|
||||
expiresAt = expiresAt.toISOString().slice(0, 19).replace('T', ' '); // 'YYYY-MM-DD HH:MM:SS'
|
||||
const link = `${process.env.DOMAIN_EXTERNE}boutique/unesco/download/${linkId}`;
|
||||
//const linkId = Date.now(); // Un identifiant unique basé sur le timestamp
|
||||
//fileLinks[linkId] = {
|
||||
// filePath: filePath,
|
||||
// expiresAt: Date.now() + 24 * 60 * 60 * 1000 // 24 heures
|
||||
//};
|
||||
|
||||
sql = 'INSERT INTO TemporaryLinks (id, link, filePath, expiresAt) VALUES ('+ linkId +', "'+ link +'", "'+ filePath +'", "'+ expiresAt +'")';
|
||||
console.log("sql : ", sql);
|
||||
const [results, fields] = await db_connection_promise.execute(sql);
|
||||
|
||||
// L'ID généré par MySQL est accessible ici
|
||||
console.log("results.affectedRows : ", results.affectedRows);
|
||||
|
||||
|
||||
console.log("link : ", link);
|
||||
return link;
|
||||
} catch (error) {
|
||||
// Echec de connection à la BD
|
||||
logger.error("Il y a un problème avec la connection à la base de données! : " + error, { numsession: req.session.id });
|
||||
await db_connection_promise.end();
|
||||
return error;
|
||||
//return res.status(403).send('Il y a un problème avec la connection à la base de données!');
|
||||
}
|
||||
}
|
||||
|
||||
const download_file = async function(req, res) {
|
||||
const linkId = req.params.id;
|
||||
//const fileData = fileLinks[linkId];
|
||||
console.log("linkId : ",linkId);
|
||||
|
||||
|
||||
try {
|
||||
// CONNEXION A LA BD
|
||||
const db_connection_promise = await mysql_promise.createConnection(dbConfig);
|
||||
const [rows] = await db_connection_promise.execute(
|
||||
'SELECT filePath, expiresAt FROM TemporaryLinks WHERE id = ?',
|
||||
[linkId]
|
||||
);
|
||||
console.log("rows.length : ",rows.length);
|
||||
|
||||
if (rows.length > 0) {
|
||||
console.log("rows.expiresAt : ",rows[0].expiresAt);
|
||||
console.log("today : ",today);
|
||||
console.log("Date.now() : ",Date.now());
|
||||
const expiresAt = new Date(rows[0].expiresAt);
|
||||
console.log("expiresAt : ",expiresAt);
|
||||
console.log("expiresAt.getTime() : ",expiresAt.getTime());
|
||||
if (Date.now() < expiresAt.getTime()) {
|
||||
req.session.filePath = rows[0].filePath;
|
||||
req.session.expiresAt = rows[0].expiresAt;
|
||||
res.download(rows[0].filePath, (err) => {
|
||||
if (err) {
|
||||
res.status(404).send('File not found');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
res.status(403).send('Link has expired');
|
||||
}
|
||||
|
||||
} else {
|
||||
res.status(403).send('Link does not exist');
|
||||
}
|
||||
} catch (error) {
|
||||
// Echec de connection à la BD
|
||||
logger.error("Il y a un problème avec la connection à la base de données! : " + error, { numsession: req.session.id });
|
||||
await db_connection_promise.end();
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
|
||||
/////////////////////////////////////////////////
|
||||
module.exports = {
|
||||
generate_link,
|
||||
download_file
|
||||
}
|
||||
|
||||
255
controllers/vente_video/generate_linkController.js
Normal file
255
controllers/vente_video/generate_linkController.js
Normal file
@@ -0,0 +1,255 @@
|
||||
/////////////////////////////////////////////////
|
||||
// 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');
|
||||
////////////////////////////////////////////////////
|
||||
// FILE NAME
|
||||
////////////////////////////////////////////////////
|
||||
const filename = path.parse(__filename).base;
|
||||
// Envoie mail
|
||||
const envoie_mail = require("../../modules/envoie_mail");
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// GOOGLE SHEET PARAMETERS
|
||||
/////////////////////////////////////////////////
|
||||
const { GoogleSpreadsheet } = require('google-spreadsheet');
|
||||
const GS_creds = require('../../inscriptionsafps-53b60452f63d.json');
|
||||
const { error } = require("console");
|
||||
// Initialize the sheet - doc ID is the long id in the sheets URL
|
||||
const GS_boutique = new GoogleSpreadsheet(process.env.gsheet_boutique);
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// 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
|
||||
};
|
||||
// OU
|
||||
const { connect_DB_promise } = require('../../modules/db/databaseconnect');
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// VARIABLES
|
||||
////////////////////////////////////////////////////
|
||||
// Stockage des fichiers avec une date d'expiration
|
||||
const fileLinks = {};
|
||||
|
||||
// DATE
|
||||
moment.locale('fr');
|
||||
var date_formattee = moment().format('L')
|
||||
var today = date_formattee;
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// Générer le lien temporaire
|
||||
////////////////////////////////////////////////////
|
||||
const generate_link = async function(req, res) {
|
||||
logger.info("======================================", { label: filename });
|
||||
logger.info("generate_link", { label: filename });
|
||||
logger.info("======================================", { label: filename });
|
||||
|
||||
|
||||
try {
|
||||
// CONNEXION A LA BD
|
||||
const db_connection_promise = await mysql_promise.createConnection(dbConfig);
|
||||
|
||||
const linkId = Date.now();
|
||||
const filePath = path.join(__dirname, 'files', 'film_suzuki_unesco_2024.mp4'); // Chemin du fichier
|
||||
let expiresAt = new Date(Date.now() + 24 * 60 * 60 * 1000); // 24 heures à partir de maintenant
|
||||
// Format de la date pour MySQL
|
||||
expiresAt = expiresAt.toISOString().slice(0, 19).replace('T', ' '); // 'YYYY-MM-DD HH:MM:SS'
|
||||
const link = `${process.env.DOMAIN_EXTERNE}boutique/unesco/download/${linkId}`;
|
||||
//const linkId = Date.now(); // Un identifiant unique basé sur le timestamp
|
||||
//fileLinks[linkId] = {
|
||||
// filePath: filePath,
|
||||
// expiresAt: Date.now() + 24 * 60 * 60 * 1000 // 24 heures
|
||||
//};
|
||||
|
||||
let sql = 'INSERT INTO TemporaryLinks (id, link, filePath, expiresAt) VALUES ('+ linkId +', "'+ link +'", "'+ filePath +'", "'+ expiresAt +'")';
|
||||
console.log("sql : ", sql);
|
||||
const [results, fields] = await db_connection_promise.execute(sql);
|
||||
|
||||
// L'ID généré par MySQL est accessible ici
|
||||
console.log("results.affectedRows : ", results.affectedRows);
|
||||
|
||||
|
||||
console.log("link : ", link);
|
||||
return link;
|
||||
} catch (error) {
|
||||
// Echec de connection à la BD
|
||||
logger.error("Il y a un problème avec la connection à la base de données! : " + error, { numsession: req.session.id });
|
||||
await db_connection_promise.end();
|
||||
return error;
|
||||
//return res.status(403).send('Il y a un problème avec la connection à la base de données!');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// WEBHOOK STRIPE
|
||||
// APRÈS PAIEMENT PAIEMENT
|
||||
// ENVOIE Lien temporaire par mail
|
||||
/////////////////////////////////////////////////
|
||||
async function wh_stripe_vente_video(req, res, event) {
|
||||
|
||||
logger.info("======================================");
|
||||
logger.info("======== FUNCTION wh_stripe_vente_video ==========");
|
||||
logger.info("======================================");
|
||||
|
||||
moment.locale('fr');
|
||||
var now = moment().format("DD/MM/YYYY");
|
||||
var dateheure = moment().format("YYYY-MM-DD HH-mm-ss");
|
||||
//console.log("event.data.object = ", event.data.object);
|
||||
//console.log("event.data.object.customer_details.email = ", event.data.object.customer_details.email);
|
||||
//console.log("event.data.object.customer_details.name = ", event.data.object.customer_details.name);
|
||||
|
||||
try {
|
||||
/////////////////////////////////////////////////
|
||||
// SI PAIEMENT RÉUSSI
|
||||
if (event.data.object.payment_status === "paid") {
|
||||
|
||||
|
||||
|
||||
// GÉNÉRATION DU LIEN DE TÉLÉCHARGEMENT TEMPORAIRE
|
||||
|
||||
const linkId = Date.now();
|
||||
const filePath = path.join(__dirname, 'files', 'film_suzuki_unesco_2024.mp4'); // Chemin du fichier
|
||||
let expiresAt = new Date(Date.now() + 24 * 60 * 60 * 1000); // 2 heures à partir de maintenant
|
||||
console.log("Date.now() =", Date.now());
|
||||
console.log("expiresAt brut =", expiresAt);
|
||||
// Format de la date pour MySQL
|
||||
expiresAt = expiresAt.toISOString().slice(0, 19).replace('T', ' '); // 'YYYY-MM-DD HH:MM:SS'
|
||||
console.log("expiresAt formatée =", expiresAt);
|
||||
const link = `${process.env.DOMAIN_EXTERNE}boutique/unesco/download/${linkId}`;
|
||||
|
||||
|
||||
//Connexion DB
|
||||
let db_connection_promise = await connect_DB_promise();
|
||||
|
||||
// AJOUT DE LA VENTE DANS LA TABLE " VENTE VIDEOS" DE LA BASE DE DONNÉES ADUZUKI
|
||||
|
||||
let sql = `INSERT INTO boutique (date, name, email, produit, originPath, link, expiresAt, montant, status_paiement, stripe) VALUES ('${dateheure}', '${event.data.object.customer_details.name}', '${event.data.object.customer_details.email}', 'Film UNESCO 2024', '${filePath}', '${link}', '${expiresAt}', ${event.data.object.amount_total}/100, '${event.data.object.payment_status}', '${event.data.object.id}')`;
|
||||
logger.info("#2 sql : " + sql, { numsession: req.session.id, label: filename});
|
||||
|
||||
// lancement de la requête
|
||||
const [result_sql, fields] = await db_connection_promise.execute(sql);
|
||||
logger.info("#2 result_sql Row ID added : " + result_sql.affectedRows, { numsession: req.session.id, label: filename});
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// ENVOIE MAIL CONFIRM + JUSTIF
|
||||
|
||||
var mail_objet = `ASSOCIATION FRANÇAISE POUR LA PÉDAGOGIE SUZUKI - ACHAT FILM - ${event.data.object.customer_details.name}`;
|
||||
var mail_html = `<p>Bonjour,</p><br><p>Suite à l'achat du film du Concert National Suzuki du 21 avril 2024 au Palais de l'UNESCO Paris, voici le lien de téléchargement du fichier vidéo. Ce lien est valable jusqu'au ${expiresAt} : <br> Cliquez sur ce lien pour accéder à la page de téléchargement du film : ${link} </p><br><p>Association Française pour la pédagogie Suzuki</p>`;
|
||||
var mailOptions = {
|
||||
from: 'afps.inscription@gmail.com',
|
||||
to: event.data.object.customer_details.email,
|
||||
subject: mail_objet,
|
||||
html: mail_html,
|
||||
};
|
||||
envoie_mail.envoie_mail(mailOptions);
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// AJOUT GOOGLE SHEET
|
||||
await GS_boutique.useServiceAccountAuth(GS_creds);
|
||||
await GS_boutique.loadInfo();
|
||||
let GS_sheet_boutique = GS_boutique.sheetsByTitle['achats'];
|
||||
await GS_sheet_boutique.addRows (
|
||||
[
|
||||
{
|
||||
date: dateheure,
|
||||
nom: event.data.object.customer_details.name,
|
||||
email: event.data.object.customer_details.email,
|
||||
produit: 'Film UNESCO 2024',
|
||||
lien: link,
|
||||
lien_expire_le: expiresAt,
|
||||
montant: event.data.object.amount_total/100,
|
||||
statut_paiement: event.data.object.payment_status,
|
||||
stripe: event.data.object.id
|
||||
}
|
||||
]
|
||||
);
|
||||
logger.info("AJOUT GOOGLESHEET FIN", { numsession: req.session.id, label: filename});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} catch (error) {
|
||||
// Echec de connection à la BD
|
||||
logger.error("Il y a un problème avec wh_stripe_vente_video : " + error, { numsession: req.session.id });
|
||||
return res.status(400).send(`Webhook Error: ${error.message}`);
|
||||
}
|
||||
|
||||
res.json({ received: true });
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
// Download le fichier
|
||||
////////////////////////////////////////////////////
|
||||
const download_file = async function(req, res) {
|
||||
|
||||
logger.info("======================================");
|
||||
logger.info("======== FUNCTION download_file ==========");
|
||||
logger.info("======================================");
|
||||
|
||||
const link = process.env.DOMAIN_EXTERNE_SS_SLASH+req.originalUrl;
|
||||
logger.info("link : " + link, { numsession: req.session.id });
|
||||
|
||||
try {
|
||||
// CONNEXION A LA BD pour vérifier l'expiration du lien temporaire et récupérer le lien original pour downloader le fichier
|
||||
const db_connection_promise = await mysql_promise.createConnection(dbConfig);
|
||||
|
||||
// Requête pour récupérer les infos d'après le code contenu dans le lien temporaire
|
||||
let sql = 'SELECT originPath, expiresAt FROM boutique WHERE link = "'+ link+'"';
|
||||
logger.info("sql FROM boutique : " + sql, { numsession: req.session.id });
|
||||
const [rows] = await db_connection_promise.execute(sql);
|
||||
logger.info("rows.length : " + rows.length, { numsession: req.session.id });
|
||||
req.session.originPath = rows[0].originPath;
|
||||
// Si le lien temporaire à été trouvé (grâce au code contenu dans le lien qui est l'id)
|
||||
if (rows.length > 0) {
|
||||
logger.info("rows.expiresAt : " + rows[0].expiresAt, { numsession: req.session.id });
|
||||
logger.info("Date.now() : " + Date.now(), { numsession: req.session.id });
|
||||
const expiresAt = new Date(rows[0].expiresAt);
|
||||
req.session.expiresAt = rows[0].expiresAt;
|
||||
logger.info("expiresAt : " + expiresAt, { numsession: req.session.id });
|
||||
|
||||
// SI le lien n'a pas expiré on peut télécharger le fichier
|
||||
if (Date.now() < expiresAt.getTime()) {
|
||||
|
||||
|
||||
return rows[0].originPath;
|
||||
} else {
|
||||
return "Lien expiré"
|
||||
}
|
||||
} else {
|
||||
return "Lien non trouvé"
|
||||
}
|
||||
} catch (error) {
|
||||
// Echec de connection à la BD
|
||||
logger.error("Il y a un problème avec la connection à la base de données! : " + error, { numsession: req.session.id });
|
||||
await db_connection_promise.end();
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// EXPORT DE MODULE POUR QU'IL SOIT LU DANS LES AUTRES FICHIERS JS
|
||||
/////////////////////////////////////////////////
|
||||
module.exports = {
|
||||
generate_link,
|
||||
download_file,
|
||||
wh_stripe_vente_video
|
||||
}
|
||||
|
||||
170
controllers/vente_video/vente_videoController.js
Normal file
170
controllers/vente_video/vente_videoController.js
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user