2013-07-15 125 views
1

我试图在使用XML API的项目中实现FedEx包裹跟踪。以下是我的跟踪请求:FedEx XML Api跟踪请求问题

'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v6="http://fedex.com/ws/track/v6"> 
       <soapenv '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v6="http://fedex.com/ws/track/v6"> 
       <soapenv:Header/> 
       <soapenv:Body> 
       <v6:TrackRequest> 
        <v6:WebAuthenticationDetail> 
         <v6:UserCredential> 
          <v6:Key>'.fedex_accesskey.'</v6:Key> 
          <v6:Password>'.fedex_password.'</v6:Password> 
         </v6:UserCredential> 
        </v6:WebAuthenticationDetail> 
        <v6:ClientDetail> 
         <v6:AccountNumber>'.fedex_account.'</v6:AccountNumber> 
         <v6:MeterNumber>'.fedex_meter.'</v6:MeterNumber> 
         <v6:IntegratorId></v6:IntegratorId> 
         <v6:Localization> 
          <v6:LanguageCode>EN</v6:LanguageCode> 
          <v6:LocaleCode>US</v6:LocaleCode> 
         </v6:Localization> 
        </v6:ClientDetail> 
        <v6:TransactionDetail> 
         <v6:CustomerTransactionId>Track By Number</v6:CustomerTransactionId> 
         <v6:Localization> 
         <v6:LanguageCode>EN</v6:LanguageCode> 
         <v6:LocaleCode>US</v6:LocaleCode> 
         </v6:Localization> 
        </v6:TransactionDetail> 
        <v6:Version> 
         <v6:ServiceId>trck</v6:ServiceId> 
         <v6:Major>6</v6:Major> 
         <v6:Intermediate>0</v6:Intermediate> 
         <v6:Minor>0</v6:Minor> 
        </v6:Version> 
        <v6:PackageIdentifier> 
         <v6:Value>'.$tracking_number.'</v6:Value> 
         <v6:Type>TRACKING_NUMBER_OR_DOORTAG</v6:Type> 
        </v6:PackageIdentifier> 
       </v6:TrackRequest> 
       </soapenv:Body> 
       </soapenv:Envelope>';:Header/> 
       <soapenv:Body> 
       <v6:TrackRequest> 
        <v6:WebAuthenticationDetail> 
         <v6:UserCredential> 
          <v6:Key>'.fedex_accesskey.'</v6:Key> 
          <v6:Password>'.fedex_password.'</v6:Password> 
         </v6:UserCredential> 
        </v6:WebAuthenticationDetail> 
        <v6:ClientDetail> 
         <v6:AccountNumber>'.fedex_account.'</v6:AccountNumber> 
         <v6:MeterNumber>'.fedex_meter.'</v6:MeterNumber> 
         <v6:IntegratorId></v6:IntegratorId> 
         <v6:Localization> 
          <v6:LanguageCode>EN</v6:LanguageCode> 
          <v6:LocaleCode>US</v6:LocaleCode> 
         </v6:Localization> 
        </v6:ClientDetail> 
        <v6:TransactionDetail> 
         <v6:CustomerTransactionId>Track By Number</v6:CustomerTransactionId> 
         <v6:Localization> 
         <v6:LanguageCode>EN</v6:LanguageCode> 
         <v6:LocaleCode>US</v6:LocaleCode> 
         </v6:Localization> 
        </v6:TransactionDetail> 
        <v6:Version> 
         <v6:ServiceId>trck</v6:ServiceId> 
         <v6:Major>6</v6:Major> 
         <v6:Intermediate>0</v6:Intermediate> 
         <v6:Minor>0</v6:Minor> 
        </v6:Version> 
        <v6:PackageIdentifier> 
         <v6:Value>'.$tracking_number.'</v6:Value> 
         <v6:Type>TRACKING_NUMBER_OR_DOORTAG</v6:Type> 
        </v6:PackageIdentifier> 
       </v6:TrackRequest> 
       </soapenv:Body> 
       </soapenv:Envelope>'; 

所有值都正确交换,并且我收到来自FedEx的成功响应。问题是响应只有一个跟踪事件。该事件似乎是联邦快递最后一次追踪更新(在这种情况下为交货时间,日期和地址),但并未显示任何追踪事件。

这是我得到的回应:Pastebin

正如你所看到的,包装状态交付,交货地址被列入,但产地和沿途的步骤都没有。有关如何获取所有跟踪信息的建议,而不仅仅是最近的步骤?帮助赞赏。

回答

0

我发现隐藏在FedEx文档中的解决方案。它将提供1以获得完整的历史记录。此值默认为false,并省略所有重要的跟踪信息。

+0

请提供该文件,例如参考链接该信息。 – hakre

0

您错过了设置为trueIncludeDetailedScans元素。下面是一个SOAP信封的例子:

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
    <TrackRequest xmlns="http://fedex.com/ws/track/v6"> 
     <WebAuthenticationDetail> 
     <CspCredential> 
      <Key>CSP_KEY</Key> 
      <Password>CSP_PASSWORD</Password> 
     </CspCredential> 
     <UserCredential> 
      <Key>DEVELOPER_KEY</Key> 
      <Password>DEVELOPER_PASSWORD</Password> 
     </UserCredential> 
     </WebAuthenticationDetail> 
     <ClientDetail> 
     <AccountNumber>ACCOUNT_NUMBER</AccountNumber> 
     <MeterNumber>METER_NUMBER</MeterNumber> 
     <ClientProductId>CLIENT_PRODUCT_ID</ClientProductId> 
     <ClientProductVersion>CLIENT_PRODUCT_VERSION</ClientProductVersion> 
     </ClientDetail> 
     <Version> 
     <ServiceId>trck</ServiceId> 
     <Major>6</Major> 
     <Intermediate>0</Intermediate> 
     <Minor>0</Minor> 
     </Version> 
     <PackageIdentifier> 
     <Value>TRACKING_NUMBER</Value> 
     <Type>TRACKING_NUMBER_OR_DOORTAG</Type> 
     </PackageIdentifier> 
     <IncludeDetailedScans>true</IncludeDetailedScans> 
    </TrackRequest> 
    </soap:Body> 
</soap:Envelope> 

请注意,如果你属于联邦快递CSP程序,如果你不是以前的请求才有效,下面的代码是您正确的:

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
    <TrackRequest xmlns="http://fedex.com/ws/track/v6"> 
     <WebAuthenticationDetail> 
     <UserCredential> 
      <Key>DEVELOPER_KEY</Key> 
      <Password>DEVELOPER_PASSWORD</Password> 
     </UserCredential> 
     </WebAuthenticationDetail> 
     <ClientDetail> 
     <AccountNumber>ACCOUNT_NUMBER</AccountNumber> 
     <MeterNumber>METER_NUMBER</MeterNumber> 
     </ClientDetail> 
     <Version> 
     <ServiceId>trck</ServiceId> 
     <Major>6</Major> 
     <Intermediate>0</Intermediate> 
     <Minor>0</Minor> 
     </Version> 
     <PackageIdentifier> 
     <Value>TRACKING_NUMBER</Value> 
     <Type>TRACKING_NUMBER_OR_DOORTAG</Type> 
     </PackageIdentifier> 
     <IncludeDetailedScans>true</IncludeDetailedScans> 
    </TrackRequest> 
    </soap:Body> 
</soap:Envelope> 

最好!

1

版本8,您需要添加以下代码,几乎在XML请求的最底部,右边的收盘价要高于“TrackRequest”标签:

<ProcessingOptions>INCLUDE_DETAILED_SCANS</ProcessingOptions>