Для реализации исходящего вебхука в Битрикс и сохранения данных в текстовый файл при обновлении статуса сделки, вам потребуется несколько шагов.
### Шаг 1: Настройка исходящего вебхука в Битрикс
1. **Создайте вебхук:**
- Зайдите в настройки вашего Битрикс24.
- Перейдите в раздел "Интеграции".
- Выберите "Вебхуки".
- Нажмите "Добавить вебхук" и выберите нужное событие, например, "Изменение статуса сделки".
- Укажите URL, куда будет отправляться запрос. Это будет ваш PHP-скрипт.
### Шаг 2: Написание PHP-скрипта
Создайте новый PHP-файл, например `webhook.php`, и добавьте в него следующий код:
```php
<?php
// Путь к файлу, в который будут сохраняться данные
$file_path = 'deals_status_log.txt';
// Получаем данные POST запроса
$data = file_get_contents('php://input');
// Преобразуем JSON в массив
$dataArray = json_decode($data, true);
// Проверяем, корректно ли пришли данные
if (json_last_error() === JSON_ERROR_NONE) {
// Извлекаем нужные данные. Предположим, вас интересует статус сделки.
$dealId = $dataArray['data']['ID'] ?? 'Не указано';
$status = $dataArray['data']['STATUS_ID'] ?? 'Не указано';
// Формируем строку для записи
$logEntry = sprintf("Deal ID: %s, Status: %s, Time: %s\n", $dealId, $status, date('Y-m-d H:i:s'));
// Сохраняем данные в текстовый файл
file_put_contents($file_path, $logEntry, FILE_APPEND);
// Возвращаем успешный ответ
http_response_code(200);
echo json_encode(['status' => 'success']);
} else {
// Если данные некорректные, отправляем 400 Bad Request
http_response_code(400);
echo json_encode(['status' => 'error', 'message' => 'Invalid JSON']);
}
```
### Шаг 3: Убедитесь, что сервер настроен
Убедитесь, что ваш веб-сервер (например, Apache или Nginx) настроен так, чтобы ваш скрипт `webhook.php` был доступен по указанному вами URL. Также убедитесь, что у веб-сервера есть права на запись в директорию, где находится файл `deals_status_log.txt`.
### Шаг 4: Тестирование
1. Измените статус сделки в Битрикс24.
2. Проверьте, создаётся ли в указанной директории файл `deals_status_log.txt` и записываются ли данные.
### Заключение
Таким образом, вы настроили исходящий вебхук, который будет вызывать ваш скрипт при изменении статуса сделки. Полученные данные будут сохраняться в текстовом файле. Если у вас возникнут вопросы по реализации или настройке, не стесняйтесь задавать их!