2012-01-05 16 views
5

Tôi đã được yêu cầu tích hợp một trang web với FedEx bằng cách sử dụng PHP. Tôi không có ý tưởng bắt đầu từ đâu. Tôi đã đăng ký tài khoản thử nghiệm và tôi đã tải xuống mã ví dụ duy nhất. Điều này tham chiếu đến tệp .wsdl nhưng mã mẫu không thực sự bao gồm tệp. Tôi không thể tìm thấy bất kỳ nơi nào trong tài liệu để lấy tệp này. Có ai giúp được không? Nếu tôi có thể nhận được một kết nối với API đôi khi trong tuần này tôi sẽ được hạnh phúc.Dịch vụ Web FEDEX tập tin 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); 
} 

?> 

Trả lời

2

Đây có thể là wsdl của bạn: https://github.com/timborden/fedex/blob/master/wsdl/LocatorService_v2.wsdl

Nhưng bạn nên có một liên kết tải về chính thức thêm về Tài liệu Fedex.

Ví dụ mã không phải là btw tốt, ini_set ("soap.wsdl_cache_enabled", "0"); nên được loại bỏ (vấn đề hiệu suất) nhưng ít nhất có một khách hàng PHP (fedex chung)!

+3

FYI: repo github đã bị xóa. Bạn có thể tìm thấy WSDL ở đây: http://www.fedex.com/us/developer/ và mô-đun Kohana mới có thể tìm thấy tại đây: https://github.com/timborden/kohana-fedex (không có WSDL) – timborden

1

Đăng nhập vào FedEx sau đó đi đây: https://www.fedex.com/wpor/web/jsp/drclinks.jsp?links=wss/getstarted.html

Chọn PHP trong Rate hàng và chọn Bao gồm tài liệu. Bạn sẽ được nhắc lưu 2 tệp zip, một trong số đó là WSDL.

+0

Kiểm tra Bao gồm tài liệu bên cạnh tùy chọn "Tải xuống tất cả" là cách duy nhất tôi tìm thấy các WSDL thực tế –