Joywork/wazzap.php
2026-05-22 21:21:54 +03:00

203 lines
9.4 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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");