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);
}
?>
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