$recipient, 'template' => $template, 'attempts' => [] ]; try { $wh = new WhatsAppService(); error_log("[test_send_template] WhatsAppService initialized"); } catch (Exception $e) { error_log("[test_send_template] ERROR init: " . $e->getMessage()); $result['error'] = 'Error initializing WhatsAppService: ' . $e->getMessage(); $result['trace'] = $e->getTraceAsString(); echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); exit(1); } foreach ($languages as $lang) { error_log("[test_send_template] Attempting language: $lang"); try { $res = $wh->sendTemplateMessage($recipient, $template, $lang, []); $result['attempts'][] = [ 'language' => $lang, 'success' => true, 'response' => $res ]; error_log("[test_send_template] Success with language: $lang"); // stop on first success break; } catch (Exception $e) { $msg = $e->getMessage(); error_log("[test_send_template] Attempt language $lang failed: " . $msg); $result['attempts'][] = [ 'language' => $lang, 'success' => false, 'error' => $msg, 'trace' => $e->getTraceAsString() ]; // continuar con siguiente candidato } } echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); } catch (Throwable $t) { $err = '[test_send_template][FATAL] ' . $t->getMessage(); error_log($err); error_log($t->getTraceAsString()); http_response_code(500); echo json_encode(['error' => $t->getMessage(), 'trace' => $t->getTraceAsString()]); exit(1); } // Si es CLI, exit code 0 si algĂșn intento fue exitoso $anySuccess = count(array_filter($result['attempts'], fn($a) => $a['success'])) > 0; exit($anySuccess ? 0 : 1);