title: Issues using a Fedex Webservice via WSDL/SOAP
body: <p>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:</p>
  
  <blockquote>
    <p>Error in processing transaction.<br>
    ERROR<br>
    prof<br>
    1000<br>
    Authentication Failed</p>
  </blockquote>
  
  <p>The script they give is as follows, and yes i do actually replace the XXX and YYY everywhere it says.:</p>
  
  <pre><code>&lt;?php
  
  // Copyright 2009, FedEx Corporation. All rights reserved.
  // Version 7.0.0
  
  require_once('fedex-common.php5');
  
  $newline = "&lt;br /&gt;";
  //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' =&gt; 1)); // Refer to http://us3.php.net/manual/en/ref.soap.php for more information
  
  $request['WebAuthenticationDetail'] = array('UserCredential' =&gt;
                                        array('Key' =&gt; 'XXX', 'Password' =&gt; 'YYY')); // Replace 'XXX' and 'YYY' with FedEx provided credentials 
  $request['ClientDetail'] = array('AccountNumber' =&gt; 'XXX', 'MeterNumber' =&gt; 'YYY');// Replace 'XXX' with your account and meter number
  $request['TransactionDetail'] = array('CustomerTransactionId' =&gt; ' *** Rate Request v7 using PHP ***');
  $request['Version'] = array('ServiceId' =&gt; 'crs', 'Major' =&gt; '7', 'Intermediate' =&gt; '0', 'Minor' =&gt; '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' =&gt; array(
                                            'StreetLines' =&gt; array('10 Fed Ex Pkwy'), // Origin details
                                            'City' =&gt; 'Memphis',
                                            'StateOrProvinceCode' =&gt; 'TN',
                                            'PostalCode' =&gt; '38115',
                                            'CountryCode' =&gt; 'US'));
  $request['RequestedShipment']['Recipient'] = array('Address' =&gt; array (
                                                 'StreetLines' =&gt; array('13450 Farmcrest Ct'), // Destination details
                                                 'City' =&gt; 'Herndon',
                                                 'StateOrProvinceCode' =&gt; 'VA',
                                                 'PostalCode' =&gt; '20171',
                                                 'CountryCode' =&gt; 'US'));
  $request['RequestedShipment']['ShippingChargesPayment'] = array('PaymentType' =&gt; 'SENDER',
                                                          'Payor' =&gt; array('AccountNumber' =&gt; 'XXX', // Replace 'XXX' with payor's account number
                                                                       'CountryCode' =&gt; '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' =&gt; array('Weight' =&gt; array('Value' =&gt; 2.0,
                                                                                      'Units' =&gt; 'LB'),
                                                                                      'Dimensions' =&gt; array('Length' =&gt; 10,
                                                                                          'Width' =&gt; 10,
                                                                                          'Height' =&gt; 3,
                                                                                          'Units' =&gt; 'IN')),
                                                                     '1' =&gt; array('Weight' =&gt; array('Value' =&gt; 5.0,
                                                                                      'Units' =&gt; 'LB'),
                                                                                      'Dimensions' =&gt; array('Length' =&gt; 20,
                                                                                          'Width' =&gt; 20,
                                                                                          'Height' =&gt; 10,
                                                                                          'Units' =&gt; 'IN')));
  try 
  {
      $response = $client -&gt;getRates($request);
  
      if ($response -&gt; HighestSeverity != 'FAILURE' &amp;&amp; $response -&gt; HighestSeverity != 'ERROR')
      {
          printRequestResponse($client);
      }
      else
      {
          echo 'Error in processing transaction.'. $newline. $newline; 
          foreach ($response -&gt; Notifications as $notification)
          {           
              if(is_array($response -&gt; Notifications))
              {              
                 echo $notification -&gt; Severity;
                 echo ': ';           
                 echo $notification -&gt; Message . $newline;
              }
              else
              {
                  echo $notification . $newline;
              }
          } 
      } 
  
      writeToLog($client);    // Write to log file   
  
  } catch (SoapFault $exception) {
     printFault($exception, $client);        
  }
  
  ?&gt;
  </code></pre>
  
  <p>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?</p>