Автоматическая отправка формы (скрипт php, REST API Битрикс 24)

  • Автор темы Автор темы Buddha
  • Дата начала Дата начала

Buddha

Client
Регистрация
10.03.2019
Сообщения
130
Реакции
19
Баллы
18
Приветствую, коллеги. Бьюсь над созданием сделки серез рест Битрикс 24. Нарыл скрипт, который отрабатывает, как нужно, но в нем отправка данных осуществляется через кнопку. Можно ли сделать так, чтобы скрипт отрабатывал сразу при загрузке страницы? Без нажатия "Отправить".
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"=>"test@bail.com", "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) и данные не передаются, просто появляется сделка без параметров.
 
Просто убрал
if (array_key_exists('saved', $_REQUEST)) { /** ***/ }


Код:
Развернуть Свернуть Копировать
<?php
   
   
    /**Добавляем сделку*/
    $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"=>"test@bail.com", "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);
 
  • Спасибо
Реакции: Buddha
Шикарно! Благодарю, lavachik, все работает)
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)