I downloaded the sample code to request a rate from fedex's website... i placed the WSDL file in the proper location, I have my acct number, password, meter number, and key. When I run the script I get this error:\[quote\] Error in processing transaction.
ERROR
prof
1000
Authentication Failed\[/quote\]The script they give is as follows, and yes i do actually replace the XXX and YYY everywhere it says.:\[code\]<?php// Copyright 2009, FedEx Corporation. All rights reserved.// Version 7.0.0require_once('fedex-common.php5');$newline = "<br />";//The WSDL is not included with the sample code.//Please include and reference in $path_to_wsdl variable.$path_to_wsdl = "RateService_v7.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' => 'XXX', 'Password' => 'YYY')); // Replace 'XXX' and 'YYY' with FedEx provided credentials $request['ClientDetail'] = array('AccountNumber' => 'XXX', 'MeterNumber' => 'YYY');// Replace 'XXX' with your account and meter number$request['TransactionDetail'] = array('CustomerTransactionId' => ' *** Rate Request v7 using PHP ***');$request['Version'] = array('ServiceId' => 'crs', 'Major' => '7', 'Intermediate' => '0', 'Minor' => '0');$request['ReturnTransitAndCommit'] = true;$request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP, REQUEST_COURIER, ...$request['RequestedShipment']['ShipTimestamp'] = date('c');$request['RequestedShipment']['ServiceType'] = 'FEDEX_GROUND'; // valid values STANDARD_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_GROUND, ...$request['RequestedShipment']['PackagingType'] = 'YOUR_PACKAGING'; // valid values FEDEX_BOX, FEDEX_PAK, FEDEX_TUBE, YOUR_PACKAGING, ...$request['RequestedShipment']['Shipper'] = array('Address' => array( 'StreetLines' => array('10 Fed Ex Pkwy'), // Origin details 'City' => 'Memphis', 'StateOrProvinceCode' => 'TN', 'PostalCode' => '38115', 'CountryCode' => 'US'));$request['RequestedShipment']['Recipient'] = array('Address' => array ( 'StreetLines' => array('13450 Farmcrest Ct'), // Destination details 'City' => 'Herndon', 'StateOrProvinceCode' => 'VA', 'PostalCode' => '20171', 'CountryCode' => 'US'));$request['RequestedShipment']['ShippingChargesPayment'] = array('PaymentType' => 'SENDER', 'Payor' => array('AccountNumber' => 'XXX', // Replace 'XXX' with payor's account number 'CountryCode' => 'US'));$request['RequestedShipment']['RateRequestTypes'] = 'ACCOUNT'; $request['RequestedShipment']['RateRequestTypes'] = 'LIST'; $request['RequestedShipment']['PackageCount'] = '2';$request['RequestedShipment']['PackageDetailSpecified'] = true;$request['RequestedShipment']['PackageDetail'] = 'INDIVIDUAL_PACKAGES'; // Or PACKAGE_SUMMARY$request['RequestedShipment']['RequestedPackageLineItems'] = array('0' => array('Weight' => array('Value' => 2.0, 'Units' => 'LB'), 'Dimensions' => array('Length' => 10, 'Width' => 10, 'Height' => 3, 'Units' => 'IN')), '1' => array('Weight' => array('Value' => 5.0, 'Units' => 'LB'), 'Dimensions' => array('Length' => 20, 'Width' => 20, 'Height' => 10, 'Units' => 'IN')));try { $response = $client ->getRates($request); if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR') { printRequestResponse($client); } else { echo 'Error in processing transaction.'. $newline. $newline; foreach ($response -> Notifications as $notification) { if(is_array($response -> Notifications)) { echo $notification -> Severity; echo ': '; echo $notification -> Message . $newline; } else { echo $notification . $newline; } } } writeToLog($client); // Write to log file } catch (SoapFault $exception) { printFault($exception, $client); }?>\[/code\]I am not quite sure why it isn't working, i've read about using a proxy, but I am not quite sure how i would use it in this case? Isn't the point of using SOAP and WSDL to avoid using CURL, Direct Connect type stuff?
ERROR
prof
1000
Authentication Failed\[/quote\]The script they give is as follows, and yes i do actually replace the XXX and YYY everywhere it says.:\[code\]<?php// Copyright 2009, FedEx Corporation. All rights reserved.// Version 7.0.0require_once('fedex-common.php5');$newline = "<br />";//The WSDL is not included with the sample code.//Please include and reference in $path_to_wsdl variable.$path_to_wsdl = "RateService_v7.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' => 'XXX', 'Password' => 'YYY')); // Replace 'XXX' and 'YYY' with FedEx provided credentials $request['ClientDetail'] = array('AccountNumber' => 'XXX', 'MeterNumber' => 'YYY');// Replace 'XXX' with your account and meter number$request['TransactionDetail'] = array('CustomerTransactionId' => ' *** Rate Request v7 using PHP ***');$request['Version'] = array('ServiceId' => 'crs', 'Major' => '7', 'Intermediate' => '0', 'Minor' => '0');$request['ReturnTransitAndCommit'] = true;$request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP, REQUEST_COURIER, ...$request['RequestedShipment']['ShipTimestamp'] = date('c');$request['RequestedShipment']['ServiceType'] = 'FEDEX_GROUND'; // valid values STANDARD_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_GROUND, ...$request['RequestedShipment']['PackagingType'] = 'YOUR_PACKAGING'; // valid values FEDEX_BOX, FEDEX_PAK, FEDEX_TUBE, YOUR_PACKAGING, ...$request['RequestedShipment']['Shipper'] = array('Address' => array( 'StreetLines' => array('10 Fed Ex Pkwy'), // Origin details 'City' => 'Memphis', 'StateOrProvinceCode' => 'TN', 'PostalCode' => '38115', 'CountryCode' => 'US'));$request['RequestedShipment']['Recipient'] = array('Address' => array ( 'StreetLines' => array('13450 Farmcrest Ct'), // Destination details 'City' => 'Herndon', 'StateOrProvinceCode' => 'VA', 'PostalCode' => '20171', 'CountryCode' => 'US'));$request['RequestedShipment']['ShippingChargesPayment'] = array('PaymentType' => 'SENDER', 'Payor' => array('AccountNumber' => 'XXX', // Replace 'XXX' with payor's account number 'CountryCode' => 'US'));$request['RequestedShipment']['RateRequestTypes'] = 'ACCOUNT'; $request['RequestedShipment']['RateRequestTypes'] = 'LIST'; $request['RequestedShipment']['PackageCount'] = '2';$request['RequestedShipment']['PackageDetailSpecified'] = true;$request['RequestedShipment']['PackageDetail'] = 'INDIVIDUAL_PACKAGES'; // Or PACKAGE_SUMMARY$request['RequestedShipment']['RequestedPackageLineItems'] = array('0' => array('Weight' => array('Value' => 2.0, 'Units' => 'LB'), 'Dimensions' => array('Length' => 10, 'Width' => 10, 'Height' => 3, 'Units' => 'IN')), '1' => array('Weight' => array('Value' => 5.0, 'Units' => 'LB'), 'Dimensions' => array('Length' => 20, 'Width' => 20, 'Height' => 10, 'Units' => 'IN')));try { $response = $client ->getRates($request); if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR') { printRequestResponse($client); } else { echo 'Error in processing transaction.'. $newline. $newline; foreach ($response -> Notifications as $notification) { if(is_array($response -> Notifications)) { echo $notification -> Severity; echo ': '; echo $notification -> Message . $newline; } else { echo $notification . $newline; } } } writeToLog($client); // Write to log file } catch (SoapFault $exception) { printFault($exception, $client); }?>\[/code\]I am not quite sure why it isn't working, i've read about using a proxy, but I am not quite sure how i would use it in this case? Isn't the point of using SOAP and WSDL to avoid using CURL, Direct Connect type stuff?