80 lines
3.6 KiB
PHP
Executable File
80 lines
3.6 KiB
PHP
Executable File
<?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";
|
||
?>
|