- Регистрация
- 10.03.2019
- Сообщения
- 122
- Благодарностей
- 18
- Баллы
- 18
Приветствую, коллеги. Бьюсь над созданием сделки серез рест Битрикс 24. Нарыл скрипт, который отрабатывает, как нужно, но в нем отправка данных осуществляется через кнопку. Можно ли сделать так, чтобы скрипт отрабатывал сразу при загрузке страницы? Без нажатия "Отправить".
Заранее благодарю за любую помощь.
Кстати, если получится отправить хотя бы данные по лиду (сделке) через post-запрос из зенки, будет вообще огонь! (от коммента **Добавляем сделку* до момента добавления контакта) Пробовал передавать массив полей в кубике, но сделка создается не в той категории (13) и данные не передаются, просто появляется сделка без параметров.
PHP:
<?php
if (array_key_exists('saved', $_REQUEST)) {
/**Добавляем сделку*/
$queryUrl = 'https://xxxxxx.bitrix24.ru/rest/1xxx1/xxxxxxxxxxx/crm.deal.add.json';
$qr = array(
'fields' => array(),
'params' => array("REGISTER_SONET_EVENT" => "Y")
);
$qr['fields']['TITLE'] = 'Бронирование он-лайн'; // Название лида
$qr['fields']['OPPORTUNITY'] = '1';
$qr['fields']['CATEGORY_ID'] = '13';
$queryData = http_build_query($qr);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));
if(!$result = curl_exec($curl))
{
$result = curl_error($curl);
}
curl_close($curl);
$result = json_decode($result, true);
$dealID = $result["result"];
var_dump($result);
/**Добавляем контакт*/
$queryUrl = 'https://xxxxx.bitrix24.ru/rest/1xxx1/xxxxxxxxxxx/crm.contact.add.json';
$qr = array(
'fields' => array(),
'params' => array()
);
$qr['fields']['NAME'] = 'Глеб';
$qr['fields']['SECOND_NAME'] = 'Егорович';
$qr['fields']['LAST_NAME'] = 'Титов';
$qr['fields']['OPENED'] = 'Y'; //открыто для других пользователей
$qr['fields']['ASSIGNED_BY_ID'] = 1xxx1; //id ответственного менеджера
$qr['fields']['PHONE']['n1'] = array("VALUE"=>"31231231200", "VALUE_TYPE"=>"WORK");
$qr['fields']['EMAIL']['n1'] = array("VALUE"=>"[email protected]", "VALUE_TYPE"=>"WORK");
$queryData = http_build_query($qr);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));
if(!$result = curl_exec($curl))
{
$result = curl_error($curl);
}
curl_close($curl);
$result = json_decode($result, true);
$contactId = $result["result"];
var_dump($result);
/**Добавляем контакт к указанной сделке*/
$queryUrl = 'https://xxxxx.bitrix24.ru/rest/1xxx1/xxxxxxxxxx/crm.deal.contact.add.json';
$qr = array(
'id' => $dealID,
'fields' => array()
);
$qr['fields']['CONTACT_ID'] = $contactId;//Идентификатор контакта (обязательное поле)
$queryData = http_build_query($qr);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));
if(!$result = curl_exec($curl))
{
$result = curl_error($curl);
}
curl_close($curl);
$result = json_decode($result, true);
var_dump($result);
}
?>
<form method="post" action="">
<input type="hidden" name="saved" value="yes">
<input type="submit" value="Отправить">
Кстати, если получится отправить хотя бы данные по лиду (сделке) через post-запрос из зенки, будет вообще огонь! (от коммента **Добавляем сделку* до момента добавления контакта) Пробовал передавать массив полей в кубике, но сделка создается не в той категории (13) и данные не передаются, просто появляется сделка без параметров.