Baihoul severin Baihoul

Baihoul severin Baihoul Informations de contact, plan et itinéraire, formulaire de contact, heures d'ouverture, services, évaluations, photos, vidéos et annonces de Baihoul severin Baihoul, Création digitale, Douala.

BAIHOUL Séverin | Auteur & Messager Spirituel

📖 Auteur du Livre de la Délivrance | 🔥 Fondateur de Maison BAIHOUL | 🎙️ Vérités, Feu, Prières, et Messages puissants | WhatsApp : +237 653003101

21/10/2025

Maison Baihoul gpt // Agence LIA – Prototype final (tous produits, paiements MTN/Orange, livraisons PDF ou objets)const ...
19/09/2025

Maison Baihoul gpt // Agence LIA – Prototype final (tous produits, paiements MTN/Orange, livraisons PDF ou objets)

const express = require('express');
const bodyParser = require('body-parser');
const fs = require('fs');
const path = require('path');
const jwt = require('jsonwebtoken');

const app = express();
app.use(bodyParser.json());

// Configuration
const SECRET = process.env.JWT_SECRET || 'supersecret';
const PAYMENT_NUMBER_MTN = process.env.PAYMENT_NUMBER_MTN || '+237654716907';
const PAYMENT_NUMBER_ORANGE = process.env.PAYMENT_NUMBER_ORANGE || '+237659589893';

// Base de données en mémoire
let products = []; // { id, name, type, description, price, fileContent?, status }
let purchases = []; // { id, productId, buyer, operator, status, delivery }

// Middleware admin
function adminAuth(req, res, next) {
const token = req.headers['authorization'];
if (!token) return res.status(401).json({ error: 'Unauthorized' });
try {
jwt.verify(token.replace('Bearer ', ''), SECRET);
next();
} catch (e) {
res.status(403).json({ error: 'Forbidden' });
}
}

// Créer un produit
app.post('/admin/product', adminAuth, (req, res) => {
const { name, type, description, price, fileContent } = req.body;
if (!name || !price) return res.status(400).json({ error: 'Nom et prix obligatoires' });

const id = products.length + 1;
const newProduct = { id, name, type, description, price, fileContent, status: 'AVAILABLE' };
products.push(newProduct);
res.json(newProduct);
});

// Lister produits
app.get('/products', (req, res) => {
res.json(products);
});

// Acheter un produit
app.get('/buy/:id', (req, res) => {
const product = products.find(p => p.id == req.params.id);
if (!product) return res.status(404).send('Produit introuvable');

res.send(`
Achat: ${product.name}
Type: ${product.type || 'standard'}
Prix: ${product.price} FCFA

MTN (${PAYMENT_NUMBER_MTN})
ORANGE (${PAYMENT_NUMBER_ORANGE})

Payer

`);
});

// Initier paiement
app.post('/pay/:id', bodyParser.urlencoded({ extended: true }), (req, res) => {
const product = products.find(p => p.id == req.params.id);
if (!product) return res.status(404).send('Produit introuvable');

const { operator, buyer } = req.body;
const id = purchases.length + 1;
const purchase = { id, productId: product.id, buyer, operator, status: 'PENDING', delivery: null };
purchases.push(purchase);

res.send(`
Paiement en attente
Veuillez envoyer ${product.price} FCFA au numéro ${operator === 'ORANGE' ? PAYMENT_NUMBER_ORANGE : PAYMENT_NUMBER_MTN}.
Votre identifiant d'achat: ${id}
`);
});

// Callback paiement (simulé ou réel)
app.post('/payment/callback', (req, res) => {
const { purchaseId, secret } = req.body;
if (secret && secret !== SECRET) return res.status(403).json({ error: 'Invalid secret' });

const purchase = purchases.find(p => p.id == purchaseId);
if (!purchase) return res.status(404).json({ error: 'Purchase not found' });

purchase.status = 'PAID';
const product = products.find(p => p.id == purchase.productId);

if (product.fileContent) {
// Livraison fichier PDF
const pdfPath = path.join(__dirname, `delivery_${purchaseId}.pdf`);
fs.writeFileSync(pdfPath, `Produit: ${product.name}\nDescription: ${product.description}\nContenu:\n${product.fileContent}`);
purchase.delivery = pdfPath;
} else {
// Livraison objet (confirmation)
purchase.delivery = `Votre commande (${product.name}) sera livrée par contact direct.`;
}

res.json({ success: true, purchase });
});

// Télécharger livraison
app.get('/delivery/:id', (req, res) => {
const purchase = purchases.find(p => p.id == req.params.id);
if (!purchase || purchase.status !== 'PAID') return res.status(403).send('Accès interdit');

if (purchase.delivery && purchase.delivery.endsWith('.pdf')) {
res.download(purchase.delivery);
} else {
res.send(`${purchase.delivery}`);
}
});

// Exporter données
app.get('/admin/export', adminAuth, (req, res) => {
res.json({ products, purchases });
});

// Démarrer serveur
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Agence LIA en marche sur port ${PORT}`));

Parfait 👌 j’ai ajouté la catégorie Maison & Vie quotidienne comme tu as demandé, pour inclure les cuillères, ustensiles, voitures, et tout ce qui est nécessaire.

Veux-tu que je crée aussi un catalogue détaillé avec prix (par exemple petit prix, moyen, grand) pour chaque catégorie ?

https://www.tiktok.com/://m.me/maisonbaihoulhttps://youtube.com/?si=_a6dGF97e-1b5lTU

Experience the future of video editing with massive AI features and create visuals that truly stand out.

Adresse

Douala

Site Web

Notifications

Soyez le premier à savoir et laissez-nous vous envoyer un courriel lorsque Baihoul severin Baihoul publie des nouvelles et des promotions. Votre adresse e-mail ne sera pas utilisée à d'autres fins, et vous pouvez vous désabonner à tout moment.

Raccourcis

Partager