up
up
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
/**
|
||||
* Endpoint/Script de prueba para enviar plantilla con varios idiomas
|
||||
* Uso por navegador: GET /api/test_send_template.php?recipient=573168950803&template=encuesta_satisfaccin
|
||||
* Uso por CLI: php api/test_send_template.php
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/../config/config_enhanced.php';
|
||||
require_once __DIR__ . '/../config/config.php';
|
||||
require_once __DIR__ . '/../services/WhatsAppService.php';
|
||||
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
error_log("[test_send_template] START - " . date('c'));
|
||||
|
||||
try {
|
||||
|
||||
$recipient = $_GET['recipient'] ?? ($_SERVER['argv'][1] ?? '573168950803');
|
||||
$template = $_GET['template'] ?? ($_SERVER['argv'][2] ?? 'encuesta_satisfaccin');
|
||||
|
||||
$languages = ['es', 'es_ES', 'es_MX', 'es_PE'];
|
||||
|
||||
$result = [
|
||||
'recipient' => $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);
|
||||
Reference in New Issue
Block a user