
Noob con Soap
Publicado por pwron (1 intervención) el 08/04/2016 18:40:58
Buenas gente no he trabajado nunca con este tipo de Webservices (SOAP) y no consigo una respuesta correcta.
Os pongo en situación , estoy trabajando en PHP y haciendo peticiones en CURL , la request y la response son estas :

El ticket se saca de otra request que si que me responde y me devuelve el ticket , hasta ahi todo correcto .
La duda la tengo aquí en la Request "<xsd:schema>schema</xsd:schema>xml</DatosSolicitud>" , el proveedor me da unos xsd que son esquemas que debe cumplir el xml (o eso imagino) para cada request .
Y aquí es donde la matan , yo lo que entiendo es que donde pone "schema" tendría que poner el xsd que me da el provedor de esta request y en donde pone "xml" , el xml que coincide con ese xsd ¿Estoy en lo cierto o estoy completamente equivocado?
Os dejo el codigo muchisimas gracias!.
Os pongo en situación , estoy trabajando en PHP y haciendo peticiones en CURL , la request y la response son estas :

El ticket se saca de otra request que si que me responde y me devuelve el ticket , hasta ahi todo correcto .
La duda la tengo aquí en la Request "<xsd:schema>schema</xsd:schema>xml</DatosSolicitud>" , el proveedor me da unos xsd que son esquemas que debe cumplir el xml (o eso imagino) para cada request .
Y aquí es donde la matan , yo lo que entiendo es que donde pone "schema" tendría que poner el xsd que me da el provedor de esta request y en donde pone "xml" , el xml que coincide con ese xsd ¿Estoy en lo cierto o estoy completamente equivocado?
Os dejo el codigo muchisimas gracias!.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
$client = new SoapClient("https://privadacz.adexia.es/ServiciosWeb.asmx?WSDL");
$result = $client->SolicitarTicket(array('Usuario' => 'xxxx' , 'Contraseña' => 'xxxx'));
$ticket = $result->SolicitarTicketResult;
$soapUrl = "https://privadacz.adexia.es/ServiciosWeb.asmx?WSDL";
$xml_post_string = '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ObtenerArchivoTarifaCz xmlns="http://privadacz.adexia.es/">
<Ticket>'.$ticket.'</Ticket>
<DatosSolicitud>
<xsd:schema>schema</xsd:schema>xml</DatosSolicitud>
</ObtenerArchivoTarifaCz>
</soap:Body>
</soap:Envelope>';
$headers = array(
"POST /ServiciosWeb.asmx HTTP/1.1",
"Host: privadacz.adexia.es",
"Content-Type: text/xml; charset=utf-8",
"Content-length: ".strlen($xml_post_string),
"SOAPAction: http://privadacz.adexia.es/ObtenerArchivoTarifaCz"
);
$url = $soapUrl;
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
var_dump($response);
curl_close($ch);
?>
Valora esta pregunta


0