2012-01-05 20 views
5

Se me ha pedido que integre un sitio web con FedEx utilizando PHP. No tengo idea de por dónde empezar. Me he registrado para una cuenta de prueba y he descargado el único código de ejemplo que hay. Esto hace referencia a un archivo .wsdl pero el código de ejemplo no incluye realmente el archivo. No puedo encontrar en ningún lugar de la documentación dónde obtener este archivo. ¿Alguien puede ayudar? Si pudiera obtener una conexión con la API en algún momento de esta semana, seré feliz.FEDEX Web Services archivo wsdl

// Copyright 2009, FedEx Corporation. All rights reserved. 
// Version 2.0.0 

require_once('../library/fedex-common.php5'); 


//The WSDL is not included with the sample code. 
//Please include and reference in $path_to_wsdl variable. 
$path_to_wsdl = "../wsdl/LocatorService_v2.wsdl"; 

ini_set("soap.wsdl_cache_enabled", "0"); 

$client = new SoapClient($path_to_wsdl, array('trace' => 1)); // Refer to http://us3.php.net/manual/en/ref.soap.php for more information 

$request['WebAuthenticationDetail'] = array('UserCredential' => 
                 array('Key' => getProperty('key'), 'Password' => getProperty('password'))); 
$request['ClientDetail'] = array('AccountNumber' => getProperty('shipaccount'), 'MeterNumber' => getProperty('meter')); 
$request['TransactionDetail'] = array('CustomerTransactionId' => '*** Locator Request v2 using PHP ***'); 
$request['Version'] = array('ServiceId' => 'dloc', 'Major' => '2', 'Intermediate' => '0', 'Minor' => '0'); 

$bNearToPhoneNumber = false; 
if ($bNearToPhoneNumber) 
{ 
    $request['NearToPhoneNumber'] = getProperty('phonenumber'); // Replace 'XXX' with phone number 
} 
else 
{ 
    $request['NearToAddress'] = getProperty('locatoraddress'); 
} 

$request['DropoffServicesDesired'] = array('Express' => 1, // Location desired services 
                    'FedExStaffed' => 1, 
                    'FedExSelfService' => 1, 
                    'FedExAuthorizedShippingCenter' => 1, 
                    'HoldAtLocation' => 1); 

try 
{ 
    if(setEndpoint('changeEndpoint')) 
    { 
     $newLocation = $client->__setLocation(setEndpoint('endpoint')); 
    } 

    $response = $client ->fedExLocator($request); 

    if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR') 
    { 
     echo 'Dropoff Locations<br>'; 
     echo '<table border="1"><tr><td>Streetline</td><td>City</td><td>State</td><td>Postal Code</td><td>Distance</td></tr>'; 
     foreach ($response -> DropoffLocations as $location) 
     { 
      if(is_array($response -> DropoffLocations)) 
      {    
       echo '<tr>'; 
       echo '<td>'.$location -> BusinessAddress -> StreetLines. '</td>'; 
       echo '<td>'.$location -> BusinessAddress -> City. '</td>'; 
       echo '<td>'.$location -> BusinessAddress -> StateOrProvinceCode. '</td>'; 
       echo '<td>'.$location -> BusinessAddress -> PostalCode. '</td>'; 
       echo '<td>('.$location -> Distance -> Value . ' '; 
       echo $location -> Distance -> Units . ')'. '</td>'; 
       echo '</tr>'; 
      } 
      else 
      { 
       //echo $location . Newline; 
      } 
     } 
     echo '</table>'; 
     printSuccess($client, $response); 
    } 
    else 
    { 
     printError($client, $response); 
    } 

    writeToLog($client); // Write to log file 

} catch (SoapFault $exception) { 
    printFault($exception, $client); 
} 

?> 

Respuesta

2

Esta puede ser su WSDL: https://github.com/timborden/fedex/blob/master/wsdl/LocatorService_v2.wsdl

pero usted debe tener un vínculo más oficial de descarga de la documentación Fedex.

El ejemplo del código no es tan bueno por cierto, ini_set ("soap.wsdl_cache_enabled", "0"); debería eliminarse (problemas de rendimiento) pero al menos hay un cliente PHP (fedex-common)!

+3

FYI: el repositorio github ha sido eliminado. Los WSDL se pueden encontrar aquí: http://www.fedex.com/us/developer/ y el nuevo módulo de Kohana se puede encontrar aquí: https://github.com/timborden/kohana-fedex (sin WSDL) – timborden

1

sesión en FedEx continuación, entra aquí: https://www.fedex.com/wpor/web/jsp/drclinks.jsp?links=wss/getstarted.html

Seleccionar PHP en la Tasa de fila y seleccione incluir documentación. Se le pedirá que guarde 2 archivos zip, uno de los cuales es el WSDL.

+0

Comprobación de inclusión la documentación junto a la opción "Descargar todo" fue la única forma en que encontré los WSDL reales –