Files
crm.clientright.ru/process_data.php

80 lines
3.6 KiB
PHP
Executable File
Raw 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
// Логируем начало работы
$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";
?>