fetch( "SELECT sm.*, u.phone_number, u.name as user_name FROM scheduled_messages sm LEFT JOIN users u ON sm.user_id = u.id WHERE sm.id = 7" ); if (!$msg) { echo "❌ Mensaje ID 7 no encontrado\n"; exit; } echo "📋 DATOS BÁSICOS:\n"; echo "ID: {$msg['id']}\n"; echo "Usuario: {$msg['user_name']} ({$msg['phone_number']})\n"; echo "Estado: {$msg['status']}\n"; echo "Tipo: {$msg['message_type']}\n"; echo "Programado para: {$msg['scheduled_date']} {$msg['scheduled_time']}\n\n"; if ($msg['message_type'] === 'template') { echo "📝 PLANTILLA:\n"; echo "Nombre: {$msg['template_name']}\n"; echo "Idioma: {$msg['template_language']}\n"; echo "Template ID: {$msg['template_id']}\n\n"; echo "📊 PARÁMETROS RAW (string guardado en BD):\n"; echo $msg['template_parameters'] . "\n\n"; echo "🔍 PARÁMETROS DECODIFICADOS:\n"; $params = json_decode($msg['template_parameters'], true); if (is_array($params)) { echo "Tipo: array\n"; echo "Cantidad: " . count($params) . "\n"; echo "Formato: "; $isAssociative = false; foreach ($params as $k => $v) { if (!is_int($k)) { $isAssociative = true; break; } } echo ($isAssociative ? "ASOCIATIVO (con nombres)" : "INDEXADO (numérico)") . "\n\n"; echo "Valores:\n"; foreach ($params as $k => $v) { echo " [$k] => '$v'\n"; } } else { echo "⚠️ No es un array válido\n"; } echo "\n\n📤 CÓMO SE ENVIARÁ A WHATSAPP:\n"; // Simular lo que hace WhatsAppService $whatsappService = new WhatsAppService(); try { // Hacer dry run para ver el payload $dryPayload = $whatsappService->sendTemplateMessage( $msg['phone_number'], $msg['template_name'], $msg['template_language'] ?? 'es', $params, [], null, null, true // dryRun = true ); echo json_encode($dryPayload, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); } catch (Exception $e) { echo "❌ Error generando payload: " . $e->getMessage() . "\n"; } } else { echo "📝 CONTENIDO:\n"; echo $msg['message_content'] . "\n"; } if (!empty($msg['error_message'])) { echo "\n\n❌ ERROR REGISTRADO:\n"; echo $msg['error_message'] . "\n"; } } catch (Exception $e) { echo "❌ Error: " . $e->getMessage() . "\n"; }