2009-09-12 4 views
0

Je travaille sur ce projet d'intégration de services Web FedEx depuis un certain temps. J'utilise PHP pour faire des appels au serveur FedEx. Tout semble fonctionner correctement.Entrée CustomerReferences non incluse dans la demande de service Web FedEx gérée via PHP

Mais j'ai des problèmes avec les champs CustomerReferences qui apparaissent dans la requête fedex d'origine qui est envoyée au serveur. J'utilise le ShipService_v7.wsdl. J'ai demandé à l'assistance technique de FedEx de dire que cela ne serait pas en mesure d'aider avec le code PHP. Mais mon problème est que même l'exemple de code fourni par fedex n'est pas capable de générer les champs customerreferences dans la requête envoyée au serveur.

Voulez-vous savoir quels sont les accords avec cela?

EDIT: code qui génère le fichier XML étant envoyé au serveur Web fedex,

$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'))); 

Résultats escomptés:

... XML Stuff ...

  <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> 

... Trucs XML ...

Courant de sortie

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

Est-ce pour des choses telles que le suivi des expéditions? Je suggère de savoir qui d'autre chez FedEx vous pouvez contacter, car cela semble assez spécifique à un domaine. – Fragsworth

+0

En fait c'est pour la création d'expédition. J'ai contacté le support technique de FedEx et ils m'ont dit qu'ils ne pouvaient utiliser que le XML créé pour la demande MAIS pas avec le code qui crée ce fichier XML :(Donc je suis bloqué - même leur code PHP ne crée pas Le champ CustomerReference – Chantz

+1

Si vous souhaitez obtenir de l'aide sur ce problème particulier, il serait plus approprié de savoir d'abord exactement ce qui ne va pas avec le XML que vous envoyez.Si vous ne parvenez pas à comprendre pourquoi votre code génère un format XML incorrect, demandez la question encore une fois mais fournissez deux choses: 1. Le code qui produit incorrectement le XML, et 2. La sortie attendue – Fragsworth

Répondre

4

add référence client sous addPackageLineItem1

comme ceci:

'Dimensions' => array(
     'Length' => 20, 
     'Width' => 20, 
     'Height' => 10, 
     'Units' => 'IN'), 
     'CustomerReferences' => array(
             '0' => array(
              'CustomerReferenceType' => 'CUSTOMER_REFERENCE', 
              'Value' => '123456' 
            )) 
Questions connexes