Запись CustomerReferences, не включенная в запрос веб-службы FedEx, передана через PHP - PullRequest
0 голосов
/ 13 сентября 2009

Я работаю над этим проектом по интеграции веб-сервисов FedEx в течение некоторого времени. Я использую PHP для звонков на сервер FedEx. Кажется, все работает правильно.

Но у меня проблемы с полями CustomerReferences, которые появляются в исходном запросе fedex, отправляемом на сервер. Я использую ShipService_v7.wsdl. Я попросил техническую поддержку FedEx, сказав, что не смогу помочь с PHP-кодом. Но моя проблема в том, что даже пример кода, предоставленного fedex, не может генерировать поля customerreferences в запросе, отправленном на сервер.

Вы, ребята, случайно не знаете, что с этим происходит?

EDIT: Код, который генерирует файл XML, отправляемый на веб-сервер 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')));

Ожидаемый результат:

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

... Материал XML ...

Токовый выход

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

1 Ответ

4 голосов
/ 05 ноября 2012

добавить ссылку на клиента в addPackageLineItem1

как это:

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