Files
crm.clientright.ru/process_data.php

80 lines
3.6 KiB
PHP
Raw Permalink Normal View History

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