@Niksss_777

Битрикс 24 облако входящий вебхук изменение поля лида crm.lead.update?

Добрый день подскажите как изменить значение в одном из полей лида. Исходящим вебхуком посылаю данные с вновь созданного лида на страницу там они обрабатываются после этого надо изменить одно поле входящим вебхуком. Посмотрите пожалуйста что ни так с кодом. Сделал два варианта но к сожалению не один не сработал.( P.S не судите строго только начинаю кодить ).Буду рад любой помощи
Первый вариант
<?php
  
  $idDeal = $_REQUEST['data']['FIELDS']['ID'];
  
  $s = json_encode(sendDataToBitrix('crm.lead.get', array('ID' => intval($_REQUEST['data']['FIELDS']['ID']))), JSON_UNESCAPED_UNICODE);
  $decode = json_decode($s,true);

  $width  = array_column($decode, 'UF_CRM_1592376873160');
  $width  = current($width);
  
  $price1 = 96969;
  
  foreach($decode as $key => $value)
  {
      $value['UF_CRM_1621002264440'] = $price1 ;
      $decode[$key] = $value;   
  }
  
  
  function sendDataToBitrix($method, $decode) {
    $queryUrl = 'https://*********************ru/rest/22/***************5/' . $method ;
    $queryData = http_build_query($decode);
  
    $curl = curl_init();
    curl_setopt_array($curl, array(
      CURLOPT_SSL_VERIFYPEER => 0,
      CURLOPT_POST => 1,
      CURLOPT_HEADER => 0,
      CURLOPT_RETURNTRANSFER => 1,
      CURLOPT_URL => $queryUrl,
      CURLOPT_POSTFIELDS => $queryData,
    ));
  
    $result = curl_exec($curl);
    curl_close($curl);
    return json_decode($result, 1);
  }
  


 $deal_data = json_encode(addFields(), JSON_UNESCAPED_UNICODE);

$log = date('Y-m-d H:i:s') . ' ' . print_r($deal_data, true);

file_put_contents(__DIR__ . '/log888.txt', $log . PHP_EOL, FILE_APPEND);



  function addFields(){
    $dataFields  = sendDataToBitrix('crm.lead.update',
      [
       'ID'     => 277588,
       'fields' => [
        'STATUS_ID'   => 'IN_PROCESS ',
        'CURRENCY_ID' => 'RUB',
        'OPPORTUNITY' => '7778787'
      ], 
      'params' => ['REGISTER_SONET_EVENT' => 'Y'] 
      ]);
      return $dataFields;

  }

  
  
  ?>


Вариант второй
<?php
  
  $idDeal = $_REQUEST['data']['FIELDS']['ID'];
  
  $s = json_encode(sendDataToBitrix('crm.lead.get', array('ID' => intval($_REQUEST['data']['FIELDS']['ID']))), JSON_UNESCAPED_UNICODE);
  $decode = json_decode($s,true);

  $width  = array_column($decode, 'UF_CRM_1592376873160');
  $width  = current($width);
  
  $price1 = 96969;
  
  foreach($decode as $key => $value)
  {
      $value['UF_CRM_1621002264440'] = $price1 ;
      $decode[$key] = $value;   
  }
  

  function sendDataToBitrix($method, $decode) {
    $queryUrl = 'https://***********.ru/rest/22/***************5/' . $method ;
    $queryData = http_build_query($decode);
  
    $curl = curl_init();
    curl_setopt_array($curl, array(
      CURLOPT_SSL_VERIFYPEER => 0,
      CURLOPT_POST => 1,
      CURLOPT_HEADER => 0,
      CURLOPT_RETURNTRANSFER => 1,
      CURLOPT_URL => $queryUrl,
      CURLOPT_POSTFIELDS => $queryData,
    ));
  
    $result = curl_exec($curl);
    curl_close($curl);
    return json_decode($result, 1);
  }
  

$str = leadUpdateById($decode,true);



$log = date('Y-m-d H:i:s') . ' ' . print_r($str, true);

file_put_contents(__DIR__ . '/log892.txt', $log . PHP_EOL, FILE_APPEND);


function leadUpdateById($decode){
    $queryData = http_build_query(array(
      'id' => $decode['ID'],
      'fields' => array(
        "NAME" => $decode['NAME'], 
        "UTM_SOURCE" => $decode['UTM_SOURCE'], //UTM метка
        "COMMENTS" => "Лид создан автоматически с сайта ".SITE_SERVER_NAME." - повторное обращение", //Комментарий
        "STATUS_ID" => "NEW", //Обновляем статус лида
        "DATE_MODIFY" => $decode['DATE'], //Обновляем стандартное поле даты модификации
		  "UF_CRM_1621002264440" => "88888888", //Заполнение пользовательского поля
      ),
      'params' => array("REGISTER_SONET_EVENT" => "Y"), //Говорим, что требуется зарегистрировать новое событие и оповестить всех прчиастных
    ));
    
    $rest = 'crm.lead.update';
    
    $queryUrl = 'https://*************.ru/rest/22/**************5/'.$rest;
    
    $curl = curl_init();
    
    curl_setopt_array($curl, array(
      CURLOPT_SSL_VERIFYPEER => 0,
      CURLOPT_POST => 1,
      CURLOPT_HEADER => 0,
      CURLOPT_RETURNTRANSFER => 1,
      CURLOPT_URL => $queryUrl,
      CURLOPT_POSTFIELDS => $queryData,
    ));
    
    $result = curl_exec($curl);
    
    curl_close($curl);
    
	$result = json_decode($result);
  
    return $result;
  }

  
  
  ?>
  • Вопрос задан
  • 876 просмотров
Решения вопроса 1
bitrix24info
@bitrix24info
Эксперт Битрикс24
$prms = array(
        "id" => $idLead,
        "fields" => array(
        "UF_CRM_1622919648" => 1,
    ),
);

$prms = json_encode( $prms );
$result = bx24( $prms, 'crm.lead.update' );

function bx24( $params, $type, $portal = '*', $admin_id = '*', $secret_code = '*' ) {

$queryUrl = 'https://' . $portal . '.bitrix24.ru/rest/' . $admin_id . '/' . $secret_code . '/' . $type;
$params = json_decode( $params, true );

$queryData = http_build_query(
    $params
);

$curl = curl_init();

curl_setopt_array( $curl, array(
    CURLOPT_SSL_VERIFYPEER => 0,
    CURLOPT_POST           => 1,
    CURLOPT_HEADER         => 0,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL            => $queryUrl,
    CURLOPT_POSTFIELDS     => $queryData,
) );

$result = curl_exec( $curl );

curl_close( $curl );
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы