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:
@@ -211,13 +211,18 @@ try {
|
|||||||
$messageContent = $message;
|
$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++;
|
$sentCount++;
|
||||||
|
|
||||||
// Guardar mensaje en BD
|
// Guardar mensaje en BD
|
||||||
$db->insert('conversations', [
|
$db->insert('conversations', [
|
||||||
'user_id' => $user['id'],
|
'user_id' => $user['id'],
|
||||||
'message_id' => $response['message_id'] ?? null,
|
'message_id' => $sentMessageId,
|
||||||
'content' => $messageContent,
|
'content' => $messageContent,
|
||||||
'direction' => 'outgoing',
|
'direction' => 'outgoing',
|
||||||
'message_type' => $messageType === 'template' ? 'template' : 'text',
|
'message_type' => $messageType === 'template' ? 'template' : 'text',
|
||||||
@@ -228,7 +233,7 @@ try {
|
|||||||
$errorCount++;
|
$errorCount++;
|
||||||
$errors[] = [
|
$errors[] = [
|
||||||
'phone' => $user['phone_number'],
|
'phone' => $user['phone_number'],
|
||||||
'error' => 'Respuesta inválida de WhatsApp'
|
'error' => 'Sin respuesta de WhatsApp: ' . json_encode($response)
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user