У меня проблема с использованием SoapClient, я искал информацию и может быть ошибка с PHP (7.3) и проблема с веб-службой, потому что PHP показывает следующую ошибку:
[05-Feb-2020 22:05:15 Америка / Богота] PHP Неустранимая ошибка: SOAP -ERROR: Схема синтаксического анализа: элемент 'http://xxx.xxx.xxx' уже определен в C: \ wamp64 \ www\proyect \ fac_electroni c. php в строке 364.
Сейчас я пытаюсь использовать следующий код с помощью curl, но не вижу, где находится ошибка.
<?php
set_time_limit(0);
$factura = base64_encode(file_get_contents('FA_2.txt'));
$envelope='<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<EmisionDocElecArchivoSustentoRqt xmlns="http://xxx.xxx.xxx">
<cuenta xmlns="">FAC0</cuenta>
<empresa xmlns="">FAC</empresa>
<usuario xmlns="">USR_FAC001</usuario>
<Documento xmlns="">'.$factura.'</Documento>
<tipoDocumento xmlns="">F</tipoDocumento>
<!-- Optional -->
<documentosSustento xmlns="">
<docSustento>'.$factura.'</docSustento>
<extensionDocSustento>txt</extensionDocSustento>
</documentosSustento>
</EmisionDocElecArchivoSustentoRqt>
</Body>
</Envelope>';
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL,"http://xxx.xxx.xxx:8150/wsdl?configName=ProcesarFactura");
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_POST,true);
curl_setopt($soap_do, CURLOPT_POSTFIELDS,$envelope);
curl_setopt($soap_do, CURLOPT_VERBOSE,TRUE);
curl_setopt($soap_do, CURLOPT_HTTPHEADER,array("Content-Type: text/xml","SOAPAction: \"/soap/action/query\"", "Content-length: ".strlen($envelope)));
$result = curl_exec($soap_do);
if (curl_errno($soap_do)) {
echo '...Request Error:' . curl_error($soap_do);
}
var_dump($result);