80 lines
3.6 KiB
PHP
80 lines
3.6 KiB
PHP
|
|
<?php
|
|||
|
|
// Логируем начало работы
|
|||
|
|
$start_time = microtime(true);
|
|||
|
|
file_put_contents('logs/process_data.log', date('Y-m-d H:i:s')." Начало обработки данных".PHP_EOL, FILE_APPEND);
|
|||
|
|
|
|||
|
|
// Подключение необходимых файлов
|
|||
|
|
include_once 'modules/Users/Users.php';
|
|||
|
|
require_once('include/Webservices/Utils.php');
|
|||
|
|
require_once 'include/Webservices/Create.php';
|
|||
|
|
require_once 'include/Webservices/Revise.php';
|
|||
|
|
require_once 'includes/Loader.php';
|
|||
|
|
require_once 'include/utils/WhatsApp.php';
|
|||
|
|
vimport ('includes.runtime.Globals');
|
|||
|
|
vimport ('includes.runtime.BaseModel');
|
|||
|
|
vimport ('includes.runtime.LanguageHandler');
|
|||
|
|
|
|||
|
|
// Получаем входные данные
|
|||
|
|
$input = file_get_contents('php://input');
|
|||
|
|
$data = json_decode($input, true);
|
|||
|
|
file_put_contents('logs/process_data.log', date('Y-m-d H:i:s').' Получены данные: '.json_encode($data).PHP_EOL, FILE_APPEND);
|
|||
|
|
|
|||
|
|
// Проверка статуса платежа
|
|||
|
|
if ($data['Status'] == 'CONFIRMED') {
|
|||
|
|
// Обрабатываем данные платежа
|
|||
|
|
$amount = $data['Amount'] / 100;
|
|||
|
|
$email = $data['Data']['Email'];
|
|||
|
|
$phone = '7'.$data['Data']['Phone'];
|
|||
|
|
|
|||
|
|
file_put_contents('logs/process_data.log', date('Y-m-d H:i:s').' Обработка платежа: сумма = '.$amount.', email = '.$email.', телефон = '.$phone.PHP_EOL, FILE_APPEND);
|
|||
|
|
|
|||
|
|
global $adb;
|
|||
|
|
|
|||
|
|
// Поиск контакта по телефону
|
|||
|
|
$query = "SELECT c.contactid FROM vtiger_contactdetails c LEFT JOIN vtiger_crmentity e ON e.crmid = c.contactid WHERE e.deleted = 0 AND c.mobile = '".$phone."'";
|
|||
|
|
$qresult = $adb->pquery($query);
|
|||
|
|
|
|||
|
|
if ($adb->num_rows($qresult) == 0) {
|
|||
|
|
// Поиск по email, если телефон не найден
|
|||
|
|
$query = "SELECT c.contactid FROM vtiger_contactdetails c LEFT JOIN vtiger_crmentity e ON e.crmid = c.contactid WHERE e.deleted = 0 AND c.email = '".$email."'";
|
|||
|
|
$qresult = $adb->pquery($query);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if ($adb->num_rows($qresult) > 0) {
|
|||
|
|
$contactid = $adb->query_result($qresult, 0, 'contactid');
|
|||
|
|
file_put_contents('logs/process_data.log', date("Y-m-d H:i:s").' Найден контакт с ID = '.$contactid.PHP_EOL, FILE_APPEND);
|
|||
|
|
|
|||
|
|
$user = Users::getActiveAdminUser(); // Получаем пользователя для создания платежа
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
$params = array(
|
|||
|
|
'pay_date' => date('Y-m-d'),
|
|||
|
|
'pay_type' => 'Receipt',
|
|||
|
|
'payer' => '12x'.$contactid,
|
|||
|
|
'type_payment' => 'Cashless Transfer',
|
|||
|
|
'amount' => $amount,
|
|||
|
|
'spstatus' => 'Executed',
|
|||
|
|
'spcompany' => 'МОО "Клиентправ"',
|
|||
|
|
'assigned_user_id' => vtws_getWebserviceEntityId('Users', $user->id)
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
$payment = vtws_create('SPPayments', $params, $user);
|
|||
|
|
$output = 'Платеж создан: '.$payment['id'];
|
|||
|
|
} catch (WebServiceException $ex) {
|
|||
|
|
$output = $ex->getMessage();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
file_put_contents('logs/process_data.log', date("Y-m-d H:i:s").' '.$output.PHP_EOL, FILE_APPEND);
|
|||
|
|
} else {
|
|||
|
|
file_put_contents('logs/process_data.log', date("Y-m-d H:i:s").' Контакт не найден'.PHP_EOL, FILE_APPEND);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Логируем завершение и время выполнения
|
|||
|
|
$end_time = microtime(true);
|
|||
|
|
$execution_time = $end_time - $start_time;
|
|||
|
|
file_put_contents('logs/process_data.log', date('Y-m-d H:i:s').' Время выполнения: '.$execution_time.' секунд'.PHP_EOL, FILE_APPEND);
|
|||
|
|
|
|||
|
|
echo "Processed";
|
|||
|
|
?>
|