-
-
Save EdEichman-LentillasSi/cee00064fbd3964d5cc56974023030fc to your computer and use it in GitHub Desktop.
| <?php | |
| //Correos Express SeguimientoEnvio | |
| //necesitaras el documento "DC_SP_apiRestSeguimientoEnviosFechas_03.pdf" - contacta con integraciones de correso express | |
| $id_shipment = {CAMPO numShip DE cex_history}; | |
| $url = "https://www.correosexpress.com/wpsc/apiRestSeguimientoEnvios/rest/seguimientoEnvios"; | |
| $input_xml = "<?xml version='1.0' encoding='UTF-8'?> | |
| <SeguimientoEnviosRequest xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' | |
| xsi:noNamespaceSchemaLocation='SeguimientoEnviosRequest.xsd'> | |
| <Solicitante>{------ Código de cliente - el mismo q utilizas para el modulo -----}</Solicitante> | |
| <Dato>$id_shipment</Dato> | |
| </SeguimientoEnviosRequest>"; | |
| $headers = array( | |
| 'Content-Type: application/xml', | |
| 'Cache-Control: no-cache', | |
| 'Accept: */*', | |
| 'Accept-Encoding: gzip, deflate, br', | |
| 'Connection: keep-alive', | |
| 'Authorization: Basic '. base64_encode("{--- Usuario - el mismo q utilizas para el modulo -----}:{--- Contraseña - el mismo q utilizas para el modulo -----}") | |
| ); | |
| $ch = curl_init(); | |
| $result = curl_setopt($ch, CURLOPT_URL, $url); | |
| if ($result) $result = curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); | |
| if ($result) $result = curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); | |
| if ($result) $result = curl_setopt($ch, CURLOPT_POST, 1); | |
| if ($result) $result = curl_setopt($ch, CURLOPT_POSTFIELDS, $input_xml); | |
| if ($result) { | |
| $data = curl_exec($ch); | |
| } | |
| curl_close($ch); | |
| //extract the XML | |
| $xml_start = strpos($data, '<?xml'); | |
| $xml = substr($data, $xml_start); | |
| $xml = simplexml_load_string($xml, "SimpleXMLElement", LIBXML_NOCDATA); | |
| $json = json_encode($xml); | |
| $result_array = json_decode($json,TRUE); | |
| //Extract the delivery time | |
| foreach ($result_array['EstadoEnvios'] as $key=>$value) { | |
| if (12 /*ENTREGADO*/ == $value['CodEstado']) { | |
| $year = substr($value['FechaEstado'], 4); | |
| $month = substr($value['FechaEstado'], 2,2); | |
| $day = substr($value['FechaEstado'], 0,2); | |
| $hour = substr($value['HoraEstado'], 0,2); | |
| $minute = substr($value['HoraEstado'], 2,2); | |
| $second = substr($value['HoraEstado'], 4,2); | |
| $date_time = date('Y-m-d H:i:s',mktime($hour, $minute, $second, $month, $day, $year)); | |
| die($date_time); | |
| } | |
| } |
Hola djboro1988,
Buenas tardes, Ed ¿Tiene algún ejemplo de la generación de la etiqueta/envio con recogida con la API de Correos Express? Gracias !
No, lo siento. Pero cuando necesito algo así, normalmente mira como lo hacen en el módulo de PrestaShop, y imita su código.
Si eres cliente, el departamento de desarrollo de Correos Express deberían ayudarte.
Buena suerte!
Ed
Por si no acertáis con el REST dejo uno con SOAP
https://github.com/mhonty/Seguimiento_Correos_Express.git
Buenas tardes, Ed ¿Tiene algún ejemplo de la generación de la etiqueta/envio con recogida con la API de Correos Express? Gracias !
Buenas @djboro1988 , este es el código para lo que pides, pasándole un JSON con los datos del envío:
`function grabarEnvio($json) {
//Preproducción
$url = 'https://www.test.cexpr.es/wspsc/apiRestGrabacionEnviok8s/json/grabacionEnvio';
//Producción
$url = 'https://www.cexpr.es/wspsc/apiRestGrabacionEnviok8s/json/grabacionEnvio';
global $user;
global $pass;
$headers = array(
'Content-Type: application/json',
'Cache-Control: no-cache',
'Accept: */*',
'Connection: keep-alive',
'Authorization: Basic '. base64_encode("{$user}:{$pass}")
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
}`
Buenas tardes, Ed
¿Tiene algún ejemplo de la generación de la etiqueta/envio con recogida con la API de Correos Express?
Gracias !