2009-09-12 77 views
0

我正在開展此FedEx Web服務集成項目一段時間。我正在使用PHP來調用FedEx服務器。一切似乎都在正常工作。CustomerReferences條目不包含在通過PHP geberated的聯邦快遞網站服務請求中

但我在發送到服務器的原始fedex請求中出現的CustomerReferences字段出現問題。我正在使用ShipService_v7.wsdl。我問聯邦快遞的技術支持,說這將無法幫助PHP代碼。但我的問題是,即使由fedex提供的示例代碼也無法在發送到服務器的請求中生成customerreferences字段。

你們會碰巧知道這是怎麼回事?

編輯: 代碼,生成的XML文件發送到聯邦快遞的web服務器,

$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' => $DEVELOPER_KEY, 'Password' => $DEVELOPER_PASSWORD)); // Replace 'XXX' and 'YYY' with FedEx provided credentials 
$request['ClientDetail'] = array('AccountNumber' => $FEDEX_ACCOUNT_NUMBER, 'MeterNumber' => $FEDEX_METER_NUMBER);// Replace 'XXX' with your account and meter number 
$request['TransactionDetail'] = array('CustomerTransactionId' => '*** Ground International Shipping Request v7 using PHP ***'); 
$request['Version'] = array('ServiceId' => 'ship', 'Major' => '7', 'Intermediate' => '0', 'Minor' => '0'); 
$request['RequestedShipment'] = array('ShipTimestamp' => date('c'), 
            'DropoffType' => 'REGULAR_PICKUP', // valid values REGULAR_PICKUP, REQUEST_COURIER, DROP_BOX, BUSINESS_SERVICE_CENTER and STATION 
            'ServiceType' => 'FEDEX_GROUND', // valid values STANDARD_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_GROUND, ... 
            'PackagingType' => 'YOUR_PACKAGING', // valid values FEDEX_BOX, FEDEX_PAK, FEDEX_TUBE, YOUR_PACKAGING, ... 
            'Shipper' => array('Contact' => array('PersonName' => 'Sender Name', 
                      'CompanyName' => 'Company Name', 
                      'PhoneNumber' => '0805522713'), 
                 'Address' => array('StreetLines' => array('Address Line 1'), 
                      'City' => 'Memphis', 
                      'StateOrProvinceCode' => 'TN', 
                      'PostalCode' => '38110', 
                      'CountryCode' => 'US')), 
            'Recipient' => array('Contact' => array('PersonName' => 'Recipient Name', 
                      'CompanyName' => 'Company Name', 
                      'PhoneNumber' => '9012637906'), 
                 'Address' => array('StreetLines' => array('Address Line 1'), 
                      'City' => 'Richmond', 
                      'StateOrProvinceCode' => 'BC', 
                      'PostalCode' => 'V7C4V4', 
                      'CountryCode' => 'CA', 
                      'Residential' => false)), 
            'ShippingChargesPayment' => array('PaymentType' => 'SENDER', // valid values RECIPIENT, SENDER and THIRD_PARTY 
                     'Payor' => array('AccountNumber' => $FEDEX_ACCOUNT_NUMBER, // Replace 'XXX' with payors account number 
                         'CountryCode' => 'US')), 
            'InternationalDetail' => array('DutiesPayment' => array('PaymentType' => 'SENDER', // valid values RECIPIENT, SENDER and THIRD_PARTY 
                          'Payor' => array('AccountNumber' => $FEDEX_ACCOUNT_NUMBER, // Replace 'XXX' with payor's account number 
                          'CountryCode' => 'CA')), 
                    'DocumentContent' => 'DOCUMENTS_ONLY',                        
                    'CustomsValue' => array('Amount' => 100.0, 'Currency' => 'USD'), 
                    'Commodities' => array('0' => array('NumberOfPieces' => 1, 
                             'Description' => 'Books', 
                             'CountryOfManufacture' => 'US', 
                             'Weight' => array('Value' => 1.0, 'Units' => 'LB'), 
                             'Quantity' => 1, 
                             'QuantityUnits' => 'EA', 
                             'UnitPrice' => array('Amount' => 1.000000, 'Currency' => 'USD'), 
                             'CustomsValue' => array('Amount' => 100.000000, 'Currency' => 'USD'))), 
                    'ExportDetail' => array('B13AFilingOption' => 'FILED_ELECTRONICALLY')),                          
            'LabelSpecification' => array('LabelFormatType' => 'COMMON2D', // valid values COMMON2D, LABEL_DATA_ONLY 
                    'ImageType' => 'PNG', // valid values DPL, EPL2, PDF, ZPLII and PNG 
                    'LabelStockType' => 'PAPER_7X4.75'), 
            'RateRequestTypes' => array('ACCOUNT'), // valid values ACCOUNT and LIST 
            'PackageCount' => 1, 
            'PackageDetail' => 'INDIVIDUAL_PACKAGES',           
            'RequestedPackageLineItems' => array('SequenceNumber' => 1, 
                   'Weight' => array('Value' => 20.0, 'Units' => 'LB')), // valid values LB and KG 
                   'CustomerReferences' => array('0' => array('CustomerReferenceType' => 'CUSTOMER_REFERENCE', 'Value' => 'TC007_07_PT1_ST01_PK01_SNDUS_RCPCA_POS'))); 

預期輸出:

... XML的東西...

  <ns1:RequestedPackageLineItems> 
       <ns1:SequenceNumber>1</ns1:SequenceNumber> 
       <ns1:Weight> 
        <ns1:Units>LB</ns1:Units> 
        <ns1:Value>20</ns1:Value> 
       </ns1:Weight> 
       <ns1:CustomerReferences> 
        <ns1:CustomerReferenceType>CUSTOMER_REFERENCE</ns1:CustomerReferenceType> 
        <ns1:Value>I am a customer reference</ns1:Value> 
       </ns1:CustomerReferences> 
      </ns1:RequestedPackageLineItems> 

... XML資料...

電流輸出addPackageLineItem1

這樣下

  <ns1:RequestedPackageLineItems> 
       <ns1:SequenceNumber>1</ns1:SequenceNumber> 
       <ns1:Weight> 
        <ns1:Units>LB</ns1:Units> 
        <ns1:Value>20</ns1:Value> 
       </ns1:Weight>  
      </ns1:RequestedPackageLineItems> 
+0

這是對的事情,如貨物跟蹤?我建議找出聯邦快遞可以聯繫哪些人,因爲這聽起來很適合特定領域。 – Fragsworth 2009-09-12 22:21:16

+0

其實它的裝運創作。我聯繫了FedEx技術支持人員,他們基本上告訴我他們只能使用爲請求創建的XML,而不能使用創建該XML文件的代碼:(所以我基本上被卡住了 - 即使他們的PHP示例代碼沒有創建CustomerReference字段 – Chantz 2009-09-12 22:29:02

+1

如果您想要解決這個特定問題,首先找出您發送的XML究竟出了什麼問題,然後如果您無法弄清楚爲什麼您的代碼生成格式不正確的XML,請詢問這個問題再次提供了兩件事:1.不正確地輸出XML的代碼,以及2.期望的輸出 – Fragsworth 2009-09-12 22:46:03

回答

4

新增客戶參考:

'Dimensions' => array(
     'Length' => 20, 
     'Width' => 20, 
     'Height' => 10, 
     'Units' => 'IN'), 
     'CustomerReferences' => array(
             '0' => array(
              'CustomerReferenceType' => 'CUSTOMER_REFERENCE', 
              'Value' => '123456' 
            )) 
相關問題