Joywork/wazzap.php

203 lines
9.4 KiB
PHP
Raw Permalink Normal View History

2026-05-22 20:21:54 +02:00
<?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");