fix: CreateWebProject возвращает чистый JSON без BOM
- ✅ CreateWebProject.php: возвращает массив (не json_encode) - ✅ CreateWebProject.php: ob_start/ob_end_clean для глушения warnings - ✅ Удалён closing tag ?> и лишние переносы - ✅ webservice.php: ob_clean() после includes (удаляет BOM) - ✅ Результат: чистый JSON без BOM и переносов - 🎯 N8N теперь корректно парсит ответ Связанные изменения: - erv_platform: claim_id генерируется только в n8n
This commit is contained in:
Submodule erv_platform updated: 6b1979c93f...b06fdb731c
@@ -26,17 +26,22 @@ vimport ('includes.runtime.LanguageHandler');
|
||||
*/
|
||||
function vtws_createwebproject($policy_number, $contact_id, $period_start = '', $period_end = '', $user = false) {
|
||||
|
||||
// ✅ Очищаем буфер вывода и подавляем warnings
|
||||
ob_start();
|
||||
|
||||
$logstring = date("Y-m-d H:i:s").' '.json_encode($_REQUEST);
|
||||
file_put_contents('logs/CreateWebProject.log', $logstring.PHP_EOL, FILE_APPEND);
|
||||
|
||||
// Проверка обязательных полей
|
||||
if(empty($policy_number)){
|
||||
ob_end_clean(); // Очищаем буфер перед exception
|
||||
$logstring = date("Y-m-d H:i:s").' Не указано обязательное поле: policy_number (cf_1885)';
|
||||
file_put_contents('logs/CreateWebProject.log', $logstring.PHP_EOL, FILE_APPEND);
|
||||
throw new WebServiceException(WebServiceErrorCode::$INVALIDID, "Не указан номер полиса");
|
||||
}
|
||||
|
||||
if(empty($contact_id)){
|
||||
ob_end_clean(); // Очищаем буфер перед exception
|
||||
$logstring = date("Y-m-d H:i:s").' Не указано обязательное поле: contact_id';
|
||||
file_put_contents('logs/CreateWebProject.log', $logstring.PHP_EOL, FILE_APPEND);
|
||||
throw new WebServiceException(WebServiceErrorCode::$INVALIDID, "Не указан ID контакта");
|
||||
@@ -101,13 +106,14 @@ function vtws_createwebproject($policy_number, $contact_id, $period_start = '',
|
||||
$logstring = date('Y-m-d H:i:s').' ✅ Создан новый Web Проект с id '.$output.PHP_EOL;
|
||||
file_put_contents('logs/CreateWebProject.log', $logstring, FILE_APPEND);
|
||||
} catch (WebServiceException $ex) {
|
||||
ob_end_clean(); // Очищаем буфер перед exception
|
||||
$logstring = date('Y-m-d H:i:s').' ❌ Ошибка создания: '.$ex->getMessage().PHP_EOL;
|
||||
file_put_contents('logs/CreateWebProject.log', $logstring, FILE_APPEND);
|
||||
throw $ex;
|
||||
}
|
||||
}
|
||||
|
||||
// Возвращаем JSON с флагом is_new
|
||||
// Возвращаем массив с флагом is_new (vTiger сам сделает json_encode!)
|
||||
$result = array(
|
||||
'project_id' => $output,
|
||||
'is_new' => $isNew
|
||||
@@ -116,7 +122,8 @@ function vtws_createwebproject($policy_number, $contact_id, $period_start = '',
|
||||
$logstring = date('Y-m-d H:i:s').' Return: '.json_encode($result).PHP_EOL;
|
||||
file_put_contents('logs/CreateWebProject.log', $logstring, FILE_APPEND);
|
||||
|
||||
return json_encode($result);
|
||||
}
|
||||
?>
|
||||
|
||||
// ✅ Очищаем буфер (удаляем все warnings/notices)
|
||||
ob_end_clean();
|
||||
|
||||
return $result; // ← Массив, НЕ json_encode!
|
||||
}
|
||||
@@ -81,6 +81,7 @@
|
||||
$state->result = $data;
|
||||
unset($state->error);
|
||||
$output = $operationManager->encode($state);
|
||||
|
||||
echo $output;
|
||||
|
||||
}
|
||||
@@ -88,6 +89,9 @@
|
||||
$logstring = date('Y-m-d H:i:s').' '.json_encode($_REQUEST).PHP_EOL;
|
||||
file_put_contents('logs/webservice.log', $logstring, FILE_APPEND);
|
||||
|
||||
// ✅ Очищаем буфер от BOM, который мог появиться при загрузке include файлов
|
||||
ob_clean();
|
||||
|
||||
$operation = vtws_getParameter($_REQUEST, "operation");
|
||||
$operation = strtolower($operation);
|
||||
$format = vtws_getParameter($_REQUEST, "format","json");
|
||||
|
||||
Reference in New Issue
Block a user