Банк не получает ответ

С банка прилетает Post-запрос через file_get_contents. Необходимо ему ответить. Принимаю POST

$secret_seed = "****";
$id = $_POST['id'];
$sum = $_POST['sum'];
$clientid = "";
$orderid = $_POST['orderid'];
$key = $_POST['key'];

Формирую ответ и отвечаю

$hash = "OK ".md5($id.$secret_seed);
echo $hash;

В таком исполнении все отрабатывает, но есть необходимость принимать данные после чего обрабатывать их в своей ИС и уже после успешного ответа отвечать банку. Пробую вот так

 $secret_seed = "****";
    $id = $_POST['id'];
    $sum = $_POST['sum'];
    $clientid = "";
    $orderid = $_POST['orderid'];
    $key = $_POST['key'];
    $hash = md5($id.$secret_seed);
        
        $data = "{'operation':'createDocZaimPayment','Number':'$orderid','Summa':'$sum'}";
        
        //Заполним массив передаваемых параметров 
        $ParametrXDTO = [
            "ИННОрганизации" => "ИНН", 
            "ВерсияПриложения" => "1.0.0.0",
            "ВходящиеДанные" => "$data",
        ];

        $params["RequestInfo"] = $ParametrXDTO;

        try { // Попытка запроса в 1С
            $client = new SoapClient(
                "Адрес",
                array(
                    'login' => "Пользователь", //логин пользователя к базе 1С
                    'password' => "Пароль", //пароль пользователя к базе 1С
                    'soap_version' => SOAP_1_2, //версия SOAP
                    'cache_wsdl' => WSDL_CACHE_NONE,
                    'trace' => true,
                    'features' => SOAP_USE_XSI_ARRAY_TYPE
                )
            );
    
            //Выполняем операцию
            $result = $client->UserDefinedOperation($params);
            $jsResult = json_decode(json_encode($result), TRUE);
        
            // Проверяем отравленность сообщения
            if ($jsResult["return"]["КодОшибки"] === '0') {
                if ($jsResult["return"]["ОписаниеОшибки"] == 'Договор не найден.') { // Договор не найден
                    
                }else{ // Платеж проведен  
                    $user_email = 'почта';
                    $message =  "<b>Ответ от 1С:</b>" . $jsResult['return']['ОписаниеОшибки'] . "<br>
                                 <b>Данные транзакции:</b>" . $requestString;
                    $subject = 'Успешная оплата';
                    $email_send = new phpmailer();
                    $email_send->sendMail($user_email,$message,$subject);
                    
                    echo $hash;
                }
            }else{ // Ошибка создания "Операции по платежным картам"
                //echo "Не заданы настройки работы сервиса АК-Кредит: Смарт.";
            }
        }catch (SoapFault $e) { // Ошибка подключения к серверу 1С
            $user_email = 'почта';
            $message = $requestString;
            $subject = 'Ошибка подключения к серверу 1С';
            $email_send = new phpmailer();
            $email_send->sendMail($user_email,$message,$subject);
        }
    
    $file = 'paylog.txt';
    //$date =  date("Y-m-d H:i:s") . "\n" . implode("\n", $_POST). "\n\n";
    $date =  date("Y-m-d H:i:s") . " " . json_encode($_POST, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "\n";  //JSON_PRETTY_PRINT
    file_put_contents($file, $date, FILE_APPEND | LOCK_EX);
}else {
        echo("Доступ закрыт");
        die;
    }

 

Ошибка которая возникает PHP Warning: file_get_contents(Адрес): failed to open stream: HTTP request failed! in /var/paykeeper/bin/Engine/informer_http.php on line 68 [Mon, 04 Apr 2022 09:55:30 +0300] Starting informer. Lockfile exists, checking if process is running Informer process is not running, removing lockfile, resuming operations. [C] 125 connection error All payments processed, exiting.

В php не силен и не знаю всех тонкостей.


Ответы (0 шт):