dffdfdfd
This commit is contained in:
parent
139159b093
commit
56132c2ee7
30
index.js
30
index.js
@ -244,7 +244,8 @@ app.post('/sendInteractiveImage', async (req, res) => {
|
|||||||
// }
|
// }
|
||||||
// });
|
// });
|
||||||
app.post('/sendProductMessage', async (req, res) => {
|
app.post('/sendProductMessage', async (req, res) => {
|
||||||
if (!client || !isConnected) {
|
// On vérifie sock et isConnected, pas client
|
||||||
|
if (!sock || !isConnected) {
|
||||||
return res.status(400).json({ error: 'Non connecté à WhatsApp' });
|
return res.status(400).json({ error: 'Non connecté à WhatsApp' });
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,41 +270,41 @@ app.post('/sendProductMessage', async (req, res) => {
|
|||||||
try {
|
try {
|
||||||
const jid = `${phone}@s.whatsapp.net`;
|
const jid = `${phone}@s.whatsapp.net`;
|
||||||
|
|
||||||
// 4.1) Construire le payload "product"
|
// Build product payload exactly comme avant
|
||||||
const productPayload = {
|
const productPayload = {
|
||||||
productImage: { url: productImageUrl }, // ou buffer si vous préférez
|
productImage: { url: productImageUrl },
|
||||||
productImageCount,
|
productImageCount,
|
||||||
title: messageTitle,
|
title: productTitle, // ici productTitle
|
||||||
description: productDescription,
|
description: productDescription,
|
||||||
priceAmount1000: priceAmount1000 * 1000, // attention au facteur 1000
|
priceAmount1000: priceAmount1000 * 1000, // ajustez si besoin
|
||||||
currencyCode,
|
currencyCode,
|
||||||
retailerId,
|
retailerId,
|
||||||
url: productUrl
|
url: productUrl
|
||||||
};
|
};
|
||||||
|
|
||||||
// 4.2) Transformer les boutons
|
// Transformer les boutons
|
||||||
const buttons = interactiveButtons.map(btn => {
|
const buttons = interactiveButtons.map(btn => {
|
||||||
const params = {};
|
const params = {};
|
||||||
if (btn.id) params.id = btn.id;
|
if (btn.id) params.id = btn.id;
|
||||||
if (btn.url) params.url = btn.url;
|
if (btn.url) params.url = btn.url;
|
||||||
if (btn.display_text) params.display_text = btn.display_text;
|
if (btn.display_text) params.display_text = btn.display_text;
|
||||||
return {
|
return {
|
||||||
name: btn.name,
|
name: btn.name,
|
||||||
buttonParamsJson: JSON.stringify(params)
|
buttonParamsJson: JSON.stringify(params)
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
// 4.3) Envoi du message
|
// **On utilise sock.sendMessage** et non client.sendMessage
|
||||||
await client.sendMessage(
|
await sock.sendMessage(
|
||||||
jid,
|
jid,
|
||||||
{
|
{
|
||||||
product: productPayload,
|
product: productPayload,
|
||||||
businessOwnerJid,
|
businessOwnerJid,
|
||||||
caption,
|
caption,
|
||||||
title: messageTitle,
|
title: messageTitle,
|
||||||
footer,
|
footer,
|
||||||
media: true,
|
media: true,
|
||||||
interactiveButtons: buttons
|
interactiveButtons: buttons
|
||||||
},
|
},
|
||||||
quoted ? { quoted } : {}
|
quoted ? { quoted } : {}
|
||||||
);
|
);
|
||||||
@ -315,6 +316,7 @@ app.post('/sendProductMessage', async (req, res) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// 5) 404 et gestion des erreurs
|
// 5) 404 et gestion des erreurs
|
||||||
app.use((req, res) => res.status(404).json({ error: 'Ressource introuvable' }));
|
app.use((req, res) => res.status(404).json({ error: 'Ressource introuvable' }));
|
||||||
app.use((err, req, res, next) => {
|
app.use((err, req, res, next) => {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user