203 lines
9.4 KiB
PHP
203 lines
9.4 KiB
PHP
<?php
|
||
require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php");
|
||
|
||
require($_SERVER['DOCUMENT_ROOT'] . "/templates/new-header.php");
|
||
|
||
?>
|
||
<script src="/js/wazzap/socket.io.js"></script>
|
||
<script src="/js/wazzap/wazzap.js"></script>
|
||
<div class="content-right" style="min-height: 100%;">
|
||
<div class="inner" style="padding-bottom: 48px;">
|
||
<div class="main-title">
|
||
<h1>Wazzup</h1>
|
||
</div>
|
||
<?php
|
||
|
||
$get = clearInputData($_GET);
|
||
|
||
$agency = new User();
|
||
$agency->get($user->agencyId);
|
||
|
||
if(!$agency->enable_wazzap) {
|
||
header("location:/settings.php"); die("Wazzup недоступен!");
|
||
}
|
||
|
||
if(!$user->added_to_wazzap) {
|
||
header("location:/settings.php"); die("Пользователь не добавлен в Wazzup!");
|
||
}
|
||
|
||
if ($user->added_to_wazzap) {
|
||
$agency_id = (int)$user->agencyId;
|
||
|
||
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
|
||
$scope = 'global';
|
||
$chatType = null;
|
||
$chatId = null;
|
||
$channelId = null;
|
||
$fio = '';
|
||
$clientId = null;
|
||
|
||
if (isset($get['type'])) {
|
||
$channelId = null;
|
||
$scope = 'card';
|
||
|
||
if (isset($get['clientId'])) {
|
||
$sql_wazz = "SELECT phone, fio FROM clients WHERE id = " . $get['clientId'];
|
||
$q_wazz = mysql_query($sql_wazz);
|
||
if (mysql_num_rows($q_wazz) > 0) {
|
||
$wazzapData = mysql_fetch_assoc($q_wazz);
|
||
$chatId = preg_replace("/[^,.0-9]/", '', $wazzapData['phone']);
|
||
$fio = $wazzapData['fio'];
|
||
$clientId = $get['clientId'];
|
||
}
|
||
} else {
|
||
if (isset($get['reqId'])) {
|
||
$sql_wazz = "SELECT id, phone, fio FROM clients WHERE id in (select r.client_id from requisitions r where id = " . $get['reqId'] . ")";
|
||
$q_wazz = mysql_query($sql_wazz);
|
||
if (mysql_num_rows($q_wazz) > 0) {
|
||
$wazzapData = mysql_fetch_assoc($q_wazz);
|
||
$chatId = preg_replace("/[^,.0-9]/", '', $wazzapData['phone']);
|
||
|
||
$fio = $wazzapData['fio'];
|
||
$clientId = $wazzapData['id'];
|
||
}
|
||
}
|
||
}
|
||
|
||
if ($get['type'] == 'watsapp') {
|
||
$chatType = "whatsapp";
|
||
}
|
||
if ($get['type'] == 'telegram') {
|
||
$chatType = "whatsapp";
|
||
//$chatId = "+" . $chatId;
|
||
}
|
||
|
||
} else {
|
||
if (isset($get['clientId'])) {
|
||
$scope = 'card';
|
||
|
||
$chatType = "whatsapp";
|
||
$clientId = $get['clientId'];
|
||
$chatId = null;
|
||
|
||
$sql_wazz = "SELECT * FROM client_data_wazzap WHERE client_id = " . $get['clientId'];
|
||
$q_wazz = mysql_query($sql_wazz);
|
||
if (mysql_num_rows($q_wazz) > 0) {
|
||
$wazzapData = mysql_fetch_assoc($q_wazz);
|
||
$chatType = $wazzapData['chat_type'];
|
||
$chatId = $wazzapData['chat_id'];
|
||
$channelId = $wazzapData['channel_id'];
|
||
}
|
||
|
||
$sql_wazz_cl = "SELECT phone, fio FROM clients WHERE id = " . $get['clientId'];
|
||
$q_wazz_r = mysql_query($sql_wazz_cl);
|
||
if (mysql_num_rows($q_wazz_r) > 0) {
|
||
$wazzapData = mysql_fetch_assoc($q_wazz_r);
|
||
if ($chatId == null) {
|
||
$chatId = preg_replace("/[^,.0-9]/", '', $wazzapData['phone']);
|
||
}
|
||
$fio = $wazzapData['fio'];
|
||
}
|
||
} else {
|
||
if (isset($get['reqId'])) {
|
||
$scope = 'card';
|
||
|
||
$chatType = "whatsapp";
|
||
|
||
$sql_wazz = "SELECT * FROM requisition_data_wazzap WHERE requisition_id = " . $get['reqId'];
|
||
$q_wazz = mysql_query($sql_wazz);
|
||
if (mysql_num_rows($q_wazz) > 0) {
|
||
$wazzapData = mysql_fetch_assoc($q_wazz);
|
||
$chatType = $wazzapData['chat_type'];
|
||
$chatId = $wazzapData['chat_id'];
|
||
$channelId = $wazzapData['channel_id'];
|
||
}
|
||
|
||
$sql_wazz_cl = "SELECT id, phone, fio FROM clients WHERE id in (select r.client_id from requisitions r where id = " . $get['reqId'] . ")";
|
||
$q_wazz_r = mysql_query($sql_wazz_cl);
|
||
if (mysql_num_rows($q_wazz_r) > 0) {
|
||
$wazzapData = mysql_fetch_assoc($q_wazz_r);
|
||
if ($chatId == null) {
|
||
$chatId = preg_replace("/[^,.0-9]/", '', $wazzapData['phone']);
|
||
}
|
||
$fio = $wazzapData['fio'];
|
||
$clientId = $wazzapData['id'];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
$wazzap = new Wazzap($user->agencyId, $pdo);
|
||
$res = $wazzap->getGlobalWidget($user->id, $scope, $chatType, $chatId, $channelId);
|
||
|
||
curl_request_wz($res);
|
||
|
||
$wazzap->createWazzapContact($clientId, $_SESSION['id'], $fio, $chatType, $chatId);
|
||
|
||
echo '<iframe frameborder="0" scrolling="yes" seamless="seamless" style="display:block; width:100%; height:80vh;" src="' . $res . '" allow="microphone *; clipboard-write *" ></iframe>';
|
||
}
|
||
?>
|
||
|
||
</div>
|
||
</div>
|
||
<script type="text/javascript">
|
||
// If one of the events ("WZ_CREATE_ENTITY", "WZ_OPEN_ENTITY", "WZ_OUTPUT_MESSAGE") is triggered,
|
||
// then display the data of this event in the console and under the line "Message from event:"
|
||
window.addEventListener('message', (e) => {
|
||
if (['WZ_CREATE_ENTITY', 'WZ_OPEN_ENTITY', 'WZ_OUTPUT_MESSAGE'].includes(e.data.type)) {
|
||
if (e.data.type === 'WZ_CREATE_ENTITY') {
|
||
//создаем заявку и клиента
|
||
$('#req_form .klient').show();
|
||
var client_id = 0;
|
||
req_form.noEmptyClientId = 1;
|
||
req_form.clientId = client_id;
|
||
req_form.wazzap_chat_type = e.data.data.chatType;
|
||
req_form.wazzap_chat_id = e.data.data.chatId;
|
||
req_form.wazzap_channel_id = e.data.data.channelId;
|
||
req_form.wazzap_user_id = e.data.data.userId;
|
||
req_form.wazzap_integration_id = e.data.data.integrationId;
|
||
|
||
req_form.openReqForm();
|
||
}
|
||
if (e.data.type === 'WZ_OPEN_ENTITY') {
|
||
var type = e.data.data.entity.link;
|
||
|
||
if (type === '#client') {
|
||
client__info.open(e.data.data.entity.id);
|
||
} else {
|
||
if (type === '#req') {
|
||
req_info.openFromOtherPage(e.data.data.entity.id);
|
||
}
|
||
}
|
||
}
|
||
if (e.data.type === 'WZ_OUTPUT_MESSAGE') {
|
||
client__info.saveChatId(e.data.data.chatType, e.data.data.channelId, e.data.data.integrationId, e.data.data.userId, e.data.data.chatId, e.data.data.telephone);
|
||
}
|
||
}
|
||
});
|
||
</script>
|
||
<?php
|
||
|
||
function curl_request_wz($url)
|
||
{
|
||
$ch = curl_init($url);
|
||
curl_setopt($ch, CURLOPT_CERTINFO, 1);
|
||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // запретить проверку сертификата удаленного сервера
|
||
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0");
|
||
curl_setopt($ch, CURLOPT_REFERER, "https://joywork.ru/");
|
||
curl_setopt($ch, CURLOPT_HEADER, 0); // При установке этого параметра в 1 результат будет включать полученные заголовки.
|
||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // При установке этого параметра в ненулевое значение CURL будет возвращать результат, а не выводить его.
|
||
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //при получении HTTP заголовка "Location: " будет происходить перенаправление на указанный этим заголовком URL
|
||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
|
||
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
||
$content = curl_exec($ch);
|
||
curl_close($ch);
|
||
return $content;
|
||
}
|
||
|
||
require($_SERVER['DOCUMENT_ROOT'] . "/templates/footer.php");
|
||
require($_SERVER['DOCUMENT_ROOT'] . "/templates/modals/req_info.php");
|