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>
這是對的事情,如貨物跟蹤?我建議找出聯邦快遞可以聯繫哪些人,因爲這聽起來很適合特定領域。 – Fragsworth 2009-09-12 22:21:16
其實它的裝運創作。我聯繫了FedEx技術支持人員,他們基本上告訴我他們只能使用爲請求創建的XML,而不能使用創建該XML文件的代碼:(所以我基本上被卡住了 - 即使他們的PHP示例代碼沒有創建CustomerReference字段 – Chantz 2009-09-12 22:29:02
如果您想要解決這個特定問題,首先找出您發送的XML究竟出了什麼問題,然後如果您無法弄清楚爲什麼您的代碼生成格式不正確的XML,請詢問這個問題再次提供了兩件事:1.不正確地輸出XML的代碼,以及2.期望的輸出 – Fragsworth 2009-09-12 22:46:03