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:
@@ -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!
|
||||
}
|
||||
Reference in New Issue
Block a user