Интеграция форм сайта с Bitrix24 CRM
MODX Revolution
16-01-2016
Наверняка используются еще хуки, такие, например, как spam,email,redirect
Например путь до файла: /assets/bitrix24/bitrix24.php, тогда к сниппету добавляем:
&hooks=`/assets/bitrix24/bitrix24.php,spam,email,redirect`Путь до файла должен быть до других используемых хуков, иначе не будет работать. В файле не забудьте указать login, password и домен подключения к CRM Используемые поля: https://dev.1c-bitrix.ru/community/blogs/chaos/crm-sozdanie-lidov-iz-drugikh-servisov.php
Содержимое обработчика отправляющего данные в CRM: {ignore}
// CRM server conection data define('CRM_HOST', 'domain.bitrix24.ru'); // your CRM domain name define('CRM_PORT', '443'); // CRM server port define('CRM_PATH', '/crm/configs/import/lead.php'); // CRM server REST service path // CRM server authorization data define('CRM_LOGIN', 'LOGIN'); // login of a CRM user able to manage leads define('CRM_PASSWORD', 'PASSWORD'); // password of a CRM user // OR you can send special authorization hash which is sent by server after first successful connection with login and password //define('CRM_AUTH', 'e54ec19f0c5f092ea11145b80f465e1a'); // authorization hash /********************************************************************************************/ // POST processing if ($_SERVER['REQUEST_METHOD'] == 'POST') { $leadData = $_POST; // get lead data from the form $postData = array( 'TITLE' => $leadData['form'], 'SOURCE_ID' => $leadData['title'], 'NAME' => $leadData['name'], 'PHONE_WORK' => $leadData['phone'], 'EMAIL_WORK' => $leadData['email'], ); // append authorization data if (defined('CRM_AUTH')) { $postData['AUTH'] = CRM_AUTH; } else { $postData['LOGIN'] = CRM_LOGIN; $postData['PASSWORD'] = CRM_PASSWORD; } // open socket to CRM $fp = fsockopen("ssl://".CRM_HOST, CRM_PORT, $errno, $errstr, 30); if ($fp) { // prepare POST data $strPostData = ''; foreach ($postData as $key => $value) $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value); // prepare POST headers $str = "POST ".CRM_PATH." HTTP/1.0\r\n"; $str .= "Host: ".CRM_HOST."\r\n"; $str .= "Content-Type: application/x-www-form-urlencoded\r\n"; $str .= "Content-Length: ".strlen($strPostData)."\r\n"; $str .= "Connection: close\r\n\r\n"; $str .= $strPostData; // send POST to CRM fwrite($fp, $str); // get CRM headers $result = ''; while (!feof($fp)) { $result .= fgets($fp, 128); } fclose($fp); // cut response headers $response = explode("\r\n\r\n", $result); $output = print_r($response[1], 1); } else { echo 'Connection Failed! '.$errstr.' ('.$errno.')'; } } else { $output = ''; } ?>