SOAPCLIENT php, Комо añadir certificado .pem en la cabecera

Es la primera vez que escribo aquí porque никакая пропанель sé que más ya...

Довод "против" Tengo que integrar un servicio para comunicarme la dgt en la cual indico una matrícula y я devuelve unos datos.

Desde el entorno de SoapUi никакой шаг скрутки problemas, porque desde las configuraciones te permite crear un header довод "против" el certificado.pem y añadirlo грешат problemas. Форма De que queda más o menos así:

      <ns1:idUsuario>888888</ns1:idUsuario>
        <!--Optional:-->
        <ns1:idOrganismoResponsable>88</ns1:idOrganismoResponsable>
        <ns1:idResponsable>88888</ns1:idResponsable>
        <ns1:version>4</ns1:version>
        <!--Optional:-->
        <ns1:tasa>8888888</ns1:tasa>
        <ns1:CriteriosConsultaVehiculo>
        <!--Optional:-->
        <ns1:matricula>1265dxz</ns1:matricula>
        <!--Optional:-->
        <ns1:bastidor/>
        <!--Optional:-->
        <ns1:nive>?</ns1:nive>
     </ns1:CriteriosConsultaVehiculo>
  </ns1:SolicitudConsultaVehiculoAtex></SOAP-ENV:Body></SOAP-ENV:Envelope>

El problema es al realizarlo desde php, Он intentado crear ООН soapHeader y meterselo tal cual Комо я lo пинта en SoapUi pero я da acceso denegado, Porque en verdad никакой estoy añadiendo la clave китайский que estoy metiendo un string обманный el contenido que me aparece en el SoapUi al añadir la cabecera.

Он intentado también подставляет Лос параметро:

'local_cert' =>'C:\\Users\\Dani\\Desktop\\certificado_bueno_camiondirecto_dario\\cert_camion.PFX.pem',
'passphrase'=>'xxxx',

Y también я da ошибка pues никакой se я añade en el header .

Alguna solución?

Gracias

1
задан 07.09.2019, 18:34
1 ответ

В меня я функционировало это:

ini_set("soap.wsdl_cache_enabled", "0");
try{
    $options = array(
            "exceptions" => true,
            "trace" => 1,
            'encoding'=>'UTF-8',
            'stream_context' => stream_context_create(array(
                    'http' => array(
                            'header' => "Authorization: Basic ".base64_encode($usuario.":".$password)
                    ),
                    "ssl"=>array(
                            "verify_peer"=>true
                            ,"allow_self_signed"=>false
                            ,"cafile"=>"/etc/ssl/certs/mycertificado.pem"
                            ,"verify_depth"=>5
                            )
            ))
    );
    $client = new SoapClient($url,$options);
    $client->__setLocation($url);
    $params = array("param1" => $param1,"param2" => $param2);
    $respuesta = $client->validar($params);
}catch(SoapFault $fault){
    //Error SOAP
    error_log($fault->faultcode." - ".$fault->faultstring);
    $respuesta=trigger_error("SOAP Fault:(faultcode: " . $fault->faultcode . "\n" . "faultstring: " . $fault->faultstring . ")", E_USER_ERROR);    
}

Должен идти прямой маршрут удостоверения, потому что тип certificado pem несовместимый с типом almacen de certificados, которые он использует php.

2
ответ дан 03.12.2019, 07:09

Теги

Похожие вопросы