Наверх
Подписаться

Организация сбора заявок с форм сайта

Включение API

Перед использованием функций API-интерфейса необходимо включить этот функционал в личном кабинете Calltouch. Для этого нужно зайти в раздел «Настройки» -> «API» и установить флажок «Включить/отключить Calltouch API»:

Будет сгенерирован токен для авторизации. Он пригодится при настройке интеграции.

 

Варианты реализации

 

Передача параметров через Ajax на сервер и запрос к API из PHP

Суть интеграции состоит в передаче в систему Calltouch данных формы обратной связи, корзины интернет-магазина и подобных обращений клиентов через сайт. По событию нажатия на кнопку или отправки формы сайта необходимо организовать пересылку данных формы и идентификатора сессии через API Calltouch.

 

1. На кнопку где производится покупка или отправка заявки необходимо добавить обработчик события onclick для отправки заявки в систему Calltouch.

<button ........ onclick="sendRequest();"  ........>

Если на сайте уже присутствует скрипт-обработчик отправки формы, то добавьте вызов данной функции в нужном месте скрипта-обработчика, желательно после прохождения валидации полей формы.

 

2. Реализовать в коде сайта javascript-функцию sendRequest().

function sendRequest() {    
   try {
     var post_data = {             
       //Собираем данные, введенные клиентом в поля формы
       name: $('/*идентификатор поля для ввода ФИО на форме*/').val(),
       phone: $('/*идентификатор поля для ввода телефона на форме*/').val(),
       email: $('/*идентификатор поля для ввода почты на форме*/').val(),
       .....
       sessionId: window.call_value //передаем id сессии
     };
     $.ajax({
       type:"POST",
       dataType: 'json',
       url:"/send_request.php",
       data:post_data
     });
   } catch (e) {}
}

Обратите внимание! Обязательное условие работы функции - подключенная библиотека jQuery.

 

3. Разместить на сервере файл send_request.php и реализовать в ней код, который позволит отсылать GET или POST запросы на сервер Calltouch. В запросе в явном виде должна быть указана кодировка utf-8.

Пример запроса:

https://api-node3.calltouch.ru/calls-service/RestAPI/XXXX/requests/orders/register/?orderSum=СУММА&fio=ИМЯ&email=ПОЧТА&phoneNumber=74951234567&orderСomment=Ok&subject=Заявка&sessionId=XXXXXXXX

URL для отправки API запроса имеет вид:

https://api-node{номер сервера Calltouch}.calltouch.ru/calls-service/RestAPI/{идентификатор сайта}/requests/orders/register/

В этом URL при добавлении скрипта укажите Ваш идентификатор сайта, который был получен в личном кабинете на первом этапе настройки выше, а так же вставьте номер сервера Calltouch, где располагается Ваш сайт, вычислить который можно по форме ниже:

 

 

Пример - передача POST запроса через CURL.

$call_value = $_POST['sessionId'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded;charset=utf-8"));
 
curl_setopt($ch, CURLOPT_URL,"http://api-node3.calltouch.ru/calls-service/RestAPI/XXXX/requests/orders/register/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"orderSum=".$_POST['sum']."&fio=".urlencode($_POST['name'])."&email=".$_POST['email']
."&phoneNumber=".$_POST['phone']."&orderComment=".urlencode('Ok')
."&subject=".urlencode('Заказ товара XXX')."".($call_value != 'undefined' ? "&sessionId=".$call_value : ""));
 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$calltouch = curl_exec ($ch);
curl_close ($ch);
 

Обратите внимание!

Для корректной передачи кириллических символов в запросе и обхода проблем с кодировкой - ко всем php переменным, передаваемым в качестве параметров в запросе, в которых присутствуют кириллические символы, необходимо применять php функцию urlencode. То есть, если ФИО клиента находиться в $_POST['name'], то в запрос ее надо добавить как urlencode($_POST['name']).

В данном примере отправляются следующие данные: сумма заказа, ФИО, email, номер телефона, комментарий к заказу, наименование формы. Полный список доступных входных параметров в запросе можно посмотреть в соответствующей статье справочного центра.

Поля requestNumber=НОМЕР&orderNumber=НОМЕР (номер заказа и номер заявки), при передаче их в запросе, могут быть одинаковыми, но при этом сами значения в целом должны быть уникальными для системы. Для одной заявки должен быть только один номер.

Обязательными параметром является sessionId. Значение этого параметра (идентификатор сессии) нужно присвоить из js-переменной call_value скрипта Calltouch.

Так как скрипт Calltouch загружается асинхронно, к переменной call_value следует обращаться так: window.call_value.

 

Передача параметров с помощью кроссдоменного Ajax запроса

Аналогично предыдущему варианту реализации отправки запроса, можно организовать отправку запроса к API Calltouch на JavaScript, с использованием библиотеки jQuery, без PHP.

<script>
jQuery(document).on("click", 'form input[type = "submit"]', function() { //вешаем обработчик на событие клика по кнопке отправки формы
//получаем введенные клиентом данные в полях формы
var fio = jQuery('input[name="name"]').val();
var phone = jQuery('input[name="phone"]').val(); 
var mail = jQuery('input[name="email"]').val();
var sub = 'Заявка';
if (typeof(phone)!='undefined' && phone!='' && fio!=''){ //делаем проверку на корректность введенных данных, если это необходимо
jQuery.getJSON('http://api-node3.calltouch.ru/calls-service/RestAPI/{id сайта}/requests/orders/register/', {
subject: sub,
fio: fio,
email: mail,
phoneNumber: phone,
sessionId: window.call_value
});
}
});
</script>

Обратите внимание! Обязательное условие работы функции - подключенная библиотека jQuery.

Все показанные в примере идентификаторы формы и полей (например jQuery('input[name="name"]') для поля ввода ФИО на форме) необходимо заменить на те, которые используются у Вас на сайте.

 

Примечание

1. Описание всех полей REST API для передачи заявок можно найти по ссылке.

2. Чтобы Calltouch смог определить источник заявки необходимо среди прочих значений обязательно передавать параметр sessionId. Ему нужно присвоить идентификатор сессии, который хранится в js-переменной call_value скрипта Calltouch. Так как скрипт Calltouch загружается асинхронно, к переменной call_value следует обращаться так: window.call_value.

3. Название переменной call_value может быть другое, в случае если на сайте настроено отслеживание нескольких номеров название переменных будут такие: call_value_1, call_value_2 и т.д.

4. Значение переменной call_value можно просмотреть через консоль браузера, набрав в ней window.call_value.

5. Следует учесть, что в случае введенных ограничений по IP адресам, а так же если на сайте отслеживаются не все источники, переменная call_value может не формироваться. При неотслеживаемых переходах данная переменная не будет инициализироваться, и при попытке передачи в данном поле значения "undefined" заявка не будет зарегистрирована. 

6. Если Ваш сайт использует SSL (подключение к сайту происходит по протоколу https), то в URL для отправки запросов в Calltouch также используйте https. Пример: https://api-node3.calltouch.ru/calls-service/RestAPI/{идентификатор сайта}/requests/orders/register/

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 4 из 6
Еще есть вопросы? Отправить запрос

0 Комментарии

Статья закрыта для комментариев.