Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Enviar XML a Web Services via PHP

Estas en el tema de Enviar XML a Web Services via PHP en el foro de PHP en Foros del Web. Hola amigos, como podría enviar la data de este XML http://ucentral.lacalle.cl/leads/leads.xml A este web services: http://200.27.180.194:8053/WS_Landin...ndingPage.asmx Usando este script: Código HTML: <?Php require "config.php"; //echo ...
  #1 (permalink)  
Antiguo 02/08/2017, 15:19
 
Fecha de Ingreso: mayo-2010
Mensajes: 60
Antigüedad: 13 años, 11 meses
Puntos: 0
Enviar XML a Web Services via PHP

Hola amigos, como podría enviar la data de este XML http://ucentral.lacalle.cl/leads/leads.xml

A este web services: http://200.27.180.194:8053/WS_Landin...ndingPage.asmx

Usando este script:
Código HTML:
<?Php
require "config.php"; 
//echo "Hola";
//////////////////////////////////////
$sql="SELECT DATE_FORMAT(FROM_UNIXTIME(submit_time), '%b %e, %Y  %l:%i %p') AS Submitted,
MAX(IF(field_name='rut', field_value, NULL )) AS 'rut',
MAX(IF(field_name='nombre', field_value, NULL )) AS 'nombre',
MAX(IF(field_name='apellido', field_value, NULL )) AS 'apellido',
MAX(IF(field_name='correo', field_value, NULL )) AS 'correo',
MAX(IF(field_name='telefonomovil', field_value, NULL )) AS 'telefonomovil',
MAX(IF(field_name='carrera', field_value, NULL )) AS 'carrera' FROM wp_cf7dbplugin_submits WHERE form_name = 'General' GROUP BY submit_time ORDER BY submit_time DESC"; 

$str ="<?xml version=\"1.0\" ?>";

//$str .="<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/\">";

$str .="<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">";

//$str .="\t<soapenv:Header/>";

$str .="\n\t<soap12:Body>";

$str .="\n\t\t<CMTXUCEN_LandingPage xmlns=\"http://tempuri.org/\">";


foreach ($dbo->query($sql) as $row) {
$str .= "\n\t\t\t<ContactoLanding>\n\t\t\t\t<rut>$row[rut]</rut>\n\t\t\t\t<nombre>$row[nombre]</nombre>\n\t\t\t\t<apellido>$row[apellido]</apellido>\n\t\t\t\t<correo>$row[correo]</correo>\n\t\t\t\t<telefonomovil>$row[telefonomovil]</telefonomovil>\n\t\t\t\t<CodigoCarrera>$row[carrera]</CodigoCarrera>\n\t\t\t</ContactoLanding>";
//$str .= "\n\t\t\t <tem:CodigoCarrera>$row[carrera]</tem:CodigoCarrera>\n\t\t</tem:ContactoLanding>";
}
$str .="\n\t\t</CMTXUCEN_LandingPage>";
$str.= "\n\t</soap12:Body>";
$str .="\n</soap12:Envelope>";
//$str=nl2br($str);
echo htmlspecialchars($str); // quitar linea si se escribe
//echo $str;
///////////////////////////// 
/// Escribiendo el archivo ////////////

$file_name="leads.xml"; // nombre del archivo
$fp = fopen ($file_name, "w"); 
// Abre el archivo, y sino existe lo crea.
fwrite ($fp,$str); // escribe
fclose ($fp); // cierra
chmod($file_name,0777); 

?>
Ayuda pls

Última edición por jh0sz; 02/08/2017 a las 19:54
  #2 (permalink)  
Antiguo 08/08/2017, 17:24
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 2 meses
Puntos: 11
Respuesta: Enviar XML a Web Services via PHP

Crea una clase llamada DTO_Contacto con los siguientes atributos:
rut -> string
nombre -> string
apellido -> string
correo ->string
telefonomovil ->string
CodigoCarrera ->string
y sus metodos getter y setter y un constructor con todos los parametros

Luego
Código PHP:
Ver original
  1. $clienteWS= new SoapClient("http://200.27.180.194:8053/WS_LandingPageDesa/WS_LandingPage.asmx?wsdl",array('trace' => 1,'soap_version' => SOAP_1_1));
  2. require_once 'DTO_Contacto.php';
  3. $contacto1=new DTO_Contacto();
  4. $contacto1->rut=$rut;
  5. $contacto1->nombre=$nombre;
  6. $contacto1->apellido=$apellido;
  7. $contacto1->correo=$correo;
  8. $contacto1->telefonomovil=$telefonomovil;
  9. $contacto1->CodigoCarrera=$CodigoCarrera;
  10.  
  11. $contacto2=new DTO_Contacto();
  12. $contacto2->rut=$rut;
  13. $contacto2->nombre=$nombre;
  14. $contacto2->apellido=$apellido;
  15. $contacto2->correo=$correo;
  16. $contacto2->telefonomovil=$telefonomovil;
  17. $contacto2->CodigoCarrera=$CodigoCarrera;
  18.  
  19. $contactos=array();
  20. $contactos[0]=$contacto1;
  21. $contactos[1]=$contacto2;
  22.  
  23.  
  24. $arreglo=array('contactosLanding'=>$contactos);
  25. $respuesta = $clienteWS->__soapCall('CMTXUCEN_LandingPage',array($arreglo));
  26. var_dump($clienteWS);

Eso es todo lo que te puedo ayudar. También tengo dudas y no tengo ahorita tiempo para implementarlo y probar. Nunca he enviado listas por WS y me parece que te piden una lista.
Pero es mas o menos así. Espero te sirva.

Etiquetas: xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:50.