up
This commit is contained in:
+24
-4
@@ -100,7 +100,7 @@ class WhatsAppWebhook {
|
||||
if (!isset($value['messages'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
foreach ($value['messages'] as $message) {
|
||||
$phoneNumber = $message['from'];
|
||||
$messageId = $message['id'];
|
||||
@@ -134,6 +134,13 @@ class WhatsAppWebhook {
|
||||
$emoji = $message['reaction']['emoji'] ?? '';
|
||||
$reactionTo = $message['reaction']['message_id'] ?? '';
|
||||
$messageText = json_encode(['emoji' => $emoji, 'message_id' => $reactionTo]);
|
||||
|
||||
// Guardar campos específicos para reacciones
|
||||
$extraFields = [
|
||||
'reaction_to_message_id' => $reactionTo ? intval($reactionTo) : null,
|
||||
'reaction_emoji' => $emoji
|
||||
];
|
||||
|
||||
} elseif (isset($message['text'])) {
|
||||
$messageText = $message['text']['body'];
|
||||
$messageType = 'text';
|
||||
@@ -155,15 +162,28 @@ class WhatsAppWebhook {
|
||||
}
|
||||
|
||||
// Guardar mensaje en base de datos
|
||||
$this->saveMessage([
|
||||
$saveData = [
|
||||
'user_id' => $user['id'],
|
||||
'message_id' => $messageId,
|
||||
'direction' => 'incoming',
|
||||
'message_type' => $messageType,
|
||||
'content' => $messageText,
|
||||
'media_url' => $mediaUrl,
|
||||
'status' => 'received'
|
||||
]);
|
||||
'status' => 'received',
|
||||
'is_read' => 0
|
||||
];
|
||||
|
||||
// Si el mensaje incluye contexto (es respuesta a otro mensaje)
|
||||
if (isset($message['context']) && isset($message['context']['id'])) {
|
||||
$saveData['reply_to_message_id'] = $message['context']['id'];
|
||||
}
|
||||
|
||||
// Añadir campos extra (si se detectaron)
|
||||
if (isset($extraFields) && is_array($extraFields)) {
|
||||
$saveData = array_merge($saveData, $extraFields);
|
||||
}
|
||||
|
||||
$this->saveMessage($saveData);
|
||||
|
||||
// Procesar con bot (protección contra excepciones externas)
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user