fix: corregir verificación de éxito en send_broadcast.php

La API de WhatsApp NO devuelve {success:true} - devuelve
{messaging_product, messages:[{id:wamid.xxx}], contacts:[...]}.
La comprobación anterior siempre fallaba → sent_count=0, error_count=N.
Ahora verifica presencia de messages/contacts en la respuesta.
This commit is contained in:
Lizandro Guarnizo
2026-03-13 13:36:50 -05:00
parent e081dc739a
commit 6cdc7bd6c4
+8 -3
View File
@@ -211,13 +211,18 @@ try {
$messageContent = $message;
}
if ($response && isset($response['success']) && $response['success']) {
// La API de WhatsApp devuelve {"messaging_product":"whatsapp","messages":[{"id":"wamid.xxx"}]}
// No tiene clave "success" — verificar por la presencia de messages o contacts
$sentMessageId = $response['messages'][0]['id'] ?? null;
$isSuccess = $response && (isset($response['messages']) || isset($response['contacts']) || $sentMessageId);
if ($isSuccess) {
$sentCount++;
// Guardar mensaje en BD
$db->insert('conversations', [
'user_id' => $user['id'],
'message_id' => $response['message_id'] ?? null,
'message_id' => $sentMessageId,
'content' => $messageContent,
'direction' => 'outgoing',
'message_type' => $messageType === 'template' ? 'template' : 'text',
@@ -228,7 +233,7 @@ try {
$errorCount++;
$errors[] = [
'phone' => $user['phone_number'],
'error' => 'Respuesta inválida de WhatsApp'
'error' => 'Sin respuesta de WhatsApp: ' . json_encode($response)
];
}