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;
|
||||
}
|
||||
|
||||
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)
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user