2015-08-28 90 views
0

我在響應速度服務api時出錯,但沒有得到我所缺少的。在聯邦快遞服務api中獲取錯誤

這裏是我的代碼

$path_to_wsdl = Folder::realpath(dirname(__FILE__) . '/wsdl/RateService_v18.wsdl'); 
     ini_set("soap.wsdl_cache_enabled", "0"); 
     $client = new SoapClient($path_to_wsdl, array('trace' => 1, 'stream_context' => stream_context_create(array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false))))); 



     $request['WebAuthenticationDetail'] = array(
      'UserCredential' => array(
       'Key' => 'fedex key', 
       'Password' => 'fedex password' 
      ) 
     ); 
     $request['ClientDetail'] = array(
      'AccountNumber' => 'fedex account number', 
      'MeterNumber' => 'fedex meter no.' 
     ); 
     $request['TransactionDetail'] = array(
      'CustomerTransactionId' => ' *** Rate Request v18 using PHP ***' 
     ); 
     $request['Version'] = array(
      'ServiceId' => 'crs', 
      'Major' => '18', 
      'Intermediate' => '0', 
      'Minor' => '1' 
     ); 
     $request['ReturnTransitAndCommit'] = true; 
     $request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP, REQUEST_COURIER, ... 
     $request['RequestedShipment']['ShipTimestamp'] = date('c'); 
     $request['RequestedShipment']['ServiceType'] = 'PRIORITY_OVERNIGHT'; // 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' => array(
       'StreetLines' => array('10 Fed Ex Pkwy'), // Origin details 
       'City' => 'Memphis', 
       'StateOrProvinceCode' => 'TN', 
       'PostalCode' => '38115', 
       'CountryCode' => 'US')); 
     $request['RequestedShipment']['Recipient'] = array(
      'Address' => array(
       'StreetLines' => array('13450 Farmcrest Ct'), // Destination details 
       'City' => 'Herndon', 
       'StateOrProvinceCode' => 'VA', 
       'PostalCode' => '20171', 
       'CountryCode' => 'US' 
      ) 
     ); 
     $request['RequestedShipment']['ShippingChargesPayment'] = array(
      'PaymentType' => 'SENDER', 
      'Payor' => array(
       'AccountNumber' => 'fedex acc no.', 
       'CountryCode' => 'US' 
      ) 
     ); 
     $request['RequestedShipment']['RateRequestTypes'] = 'ACCOUNT'; 
     $request['RequestedShipment']['RateRequestTypes'] = 'LIST'; 
     $request['RequestedShipment']['PackageCount'] = '2'; 
     $request['RequestedShipment']['PackageDetail'] = 'INDIVIDUAL_PACKAGES'; // Or PACKAGE_SUMMARY 
     $request['RequestedShipment']['RequestedPackageLineItems'] = array(
      '0' => array(
       'Weight' => array(
        'Value' => 2.0, 
        'Units' => 'LB' 
       ), 
       'Dimensions' => array(
        'Length' => 10, 
        'Width' => 10, 
        'Height' => 3, 
        'Units' => 'IN' 
       ) 
      ), 
      '1' => array(
       'Weight' => array(
        'Value' => 5.0, 
        'Units' => 'LB' 
       ), 
       'Dimensions' => array(
        'Length' => 20, 
        'Width' => 20, 
        'Height' => 10, 
        'Units' => 'IN' 
       ) 
      ) 
     ); 




     try { 
      return $client->getRates($request); 
     } catch (SoapFault $exception) { 
      return $exception; 
     } 

這裏是我得到

[faultstring] => Fault 
    [faultcode] => SOAP-ENV:Server 
    [detail] => stdClass Object 
     (
      [cause] => UnrecoverableClientError 
      [code] => SchemaError 
      [desc] => validation failure for RateRequest Error:cvc-enumeration-valid: Value '1' is not facet-valid with respect to enumeration 
     ) 

我堅持這個特殊的線 - 「驗證失敗的RateRequest錯誤錯誤異常:CVC-枚舉有效:值'1'對於枚舉不是方面有效的「。

+0

*真的很難在網上搜索錯誤消息嗎?我的意思是這個錯誤已經非常明顯,但是如果你還沒有明白它的意思,谷歌的第一次打擊就有了解釋。 – burzum

+0

@burzum我沒有得到哪個特定的字段無效 –

回答

2

最後得到的答案

替換RateService_v18.wsdl下面給出的行文件

<xs:element name="Minor" type="xs:int" fixed="1" minOccurs="1"> 

<xs:element name="Minor" type="xs:int" minOccurs="1"> 

,併發送小參數爲0,如下圖所示

$request['Version'] = array(
      'ServiceId' => 'crs', 
      'Major' => '18', 
      'Intermediate' => '0', 
      'Minor' => '0' 
     ); 
相關問題