首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FedEx干冰通过FedEx API

FedEx干冰通过FedEx API
EN

Stack Overflow用户
提问于 2016-10-21 03:10:55
回答 3查看 962关注 0票数 3

是否有人对干冰应用程序接口( FedEx API )足够熟悉,可以让干冰工作呢?

干冰的FedEx文档如下:Details.htm

然而,这似乎与它们的WSDL并不匹配。不管我尝试了什么,我总是会得到一个模式验证错误。

是否有人能够提供包括干冰在内的样品请求,并作出成功的答复?

我找不到任何关于放置RequestedPackages元素的正确位置的信息。我把它放在与RequestedShipment以及其他几个地方相同的水平上,却一无所获。

如果我只设置了RequestedShipment字段,而不是我得到的包信息:

代码语言:javascript
复制
8616 (Dry Ice cannot be entered at the shipment level.)

示例请求

这个样例请求让我感觉最接近。不过,FedEx不喜欢RequestedPackages元素的位置。我已经删除了许多不必要的字段,如下面的地址信息:

代码语言:javascript
复制
    <ns:ProcessShipmentRequest xmlns:ns="http://fedex.com/ws/ship/v15" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://fedex.com/ws/ship/v15 ShipService v15.xsd">
    <ns:WebAuthenticationDetail>
        <ns:UserCredential>
        </ns:UserCredential>
    </ns:WebAuthenticationDetail>
    <ns:ClientDetail>
    </ns:ClientDetail>
    <ns:TransactionDetail>
        <ns:CustomerTransactionId>CreatePendingRequest</ns:CustomerTransactionId>
    </ns:TransactionDetail>
    <ns:Version>
        <ns:ServiceId>ship</ns:ServiceId>
        <ns:Major>15</ns:Major>
        <ns:Intermediate>0</ns:Intermediate>
        <ns:Minor>0</ns:Minor>
    </ns:Version>
    <ns:RequestedShipment>
        <ns:ShipTimestamp>2016-10-21T10:17:09-07:00</ns:ShipTimestamp>
        <ns:DropoffType>REGULAR_PICKUP</ns:DropoffType>
        <ns:ServiceType>PRIORITY_OVERNIGHT</ns:ServiceType>
        <ns:PackagingType>YOUR_PACKAGING</ns:PackagingType>
        <ns:SpecialServicesRequested>
            <ns:SpecialServiceTypes>DRY_ICE</ns:SpecialServiceTypes>
            <ns:ShipmentDryIceDetail>
                <ns:PackageCount>1</ns:PackageCount>
                <ns:TotalWeight>
                    <ns:Units>KG</ns:Units>
                    <ns:Value>2.5</ns:Value>
                </ns:TotalWeight>
            </ns:ShipmentDryIceDetail>
        </ns:SpecialServicesRequested>
        <ns:LabelSpecification>
            <ns:LabelFormatType>COMMON2D</ns:LabelFormatType>
            <ns:ImageType>ZPLII</ns:ImageType>
            <ns:LabelStockType>STOCK_4X6</ns:LabelStockType>
            <ns:LabelPrintingOrientation>TOP_EDGE_OF_TEXT_FIRST</ns:LabelPrintingOrientation>
        </ns:LabelSpecification>
        <ns:RateRequestTypes>LIST</ns:RateRequestTypes>
        <ns:PackageCount>1</ns:PackageCount>
        <ns:RequestedPackageLineItems>
            <ns:SequenceNumber>1</ns:SequenceNumber>
            <ns:Weight>
                <ns:Units>LB</ns:Units>
                <ns:Value>8</ns:Value>
            </ns:Weight>
            <ns:Dimensions>
            </ns:Dimensions>
            <ns:SpecialServicesRequested>
                <ns:SpecialServiceTypes>SIGNATURE_OPTION</ns:SpecialServiceTypes>
                <ns:SignatureOptionDetail>
                    <ns:OptionType>SERVICE_DEFAULT</ns:OptionType>
                </ns:SignatureOptionDetail>
            </ns:SpecialServicesRequested>
        </ns:RequestedPackageLineItems>
    </ns:RequestedShipment>
    <ns:RequestedPackages>
        <ns:SpecialServicesRequested>
            <ns:SpecialServiceTypes>DRY_ICE</ns:SpecialServiceTypes>
            <ns:DryIceWeight>
                <ns:Units>KG</ns:Units>
                <ns:Value>2.5</ns:Value>
            </ns:DryIceWeight>
        </ns:SpecialServicesRequested>
    </ns:RequestedPackages>
</ns:ProcessShipmentRequest>

FedEx回应:

代码语言:javascript
复制
Element not allowed: RequestedPackages@http://fedex.com/ws/ship/v15 in element ProcessShipmentRequest@http://fedex.com/ws/ship/v15

我还尝试将包级干冰信息放在RequestedPackageLineItems/SpecialServicesRequested部分,但得到了以下响应:

代码语言:javascript
复制
Expected elements \'PieceCountVerificationBoxCount@http://fedex.com/ws/ship/v15 PriorityAlertDetail@http://fedex.com/ws/ship/v15 AlcoholDetail@http://fedex.com/ws/ship/v15\' instead of \'DryIceWeight@http://fedex.com/ws/ship/v15\' here in element SpecialServicesRequested@http://fedex.com/ws/ship/v15
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-29 02:12:49

下面是一个样本FedEx标签要求与干冰,这是可行的。凭据和地址信息已被删除。

干冰信息在RequestedShipment/RequestedPackageLineItems/SpecialServicesRequested

虽然文档还说要将其放在RequestedShipment/SpecialServicesRequested中,但我发现这样做总是会导致以下错误

代码语言:javascript
复制
8616 (Dry Ice cannot be entered at the shipment level.)

还请注意,该包还启用了SIGNATURE_OPTION。这些和任何其他SpecialServiceTypes的排序是非常重要的。如果您正在使用其他包级别的特殊服务,并且正在获取Schema validation failed for request错误,则可能需要重新排序字段或联系FedEx支持以获得排序中的帮助。DRY_ICE必须始终是第一个特殊服务类型,而DryIceWeight元素必须在特殊服务列表之后,但在这些服务需要的任何额外元素之前。

干冰样品装运请求:

代码语言:javascript
复制
<ns:ProcessShipmentRequest xmlns:ns="http://fedex.com/ws/ship/v15" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://fedex.com/ws/ship/v15 ShipService v15.xsd">
    <ns:WebAuthenticationDetail>
        <ns:UserCredential>
            <ns:Key></ns:Key>
            <ns:Password></ns:Password>
        </ns:UserCredential>
    </ns:WebAuthenticationDetail>
    <ns:ClientDetail>
        <ns:AccountNumber></ns:AccountNumber>
        <ns:MeterNumber></ns:MeterNumber>
    </ns:ClientDetail>
    <ns:TransactionDetail>
        <ns:CustomerTransactionId>CreatePendingRequest</ns:CustomerTransactionId>
    </ns:TransactionDetail>
    <ns:Version>
        <ns:ServiceId>ship</ns:ServiceId>
        <ns:Major>15</ns:Major>
        <ns:Intermediate>0</ns:Intermediate>
        <ns:Minor>0</ns:Minor>
    </ns:Version>
    <ns:RequestedShipment>
        <ns:ShipTimestamp>2016-10-25T11:03:40-07:00</ns:ShipTimestamp>
        <ns:DropoffType>REGULAR_PICKUP</ns:DropoffType>
        <ns:ServiceType>PRIORITY_OVERNIGHT</ns:ServiceType>
        <ns:PackagingType>YOUR_PACKAGING</ns:PackagingType>
        <ns:Shipper>
            <ns:Contact>
                <ns:CompanyName>Name</ns:CompanyName>
                <ns:PhoneNumber>Phone</ns:PhoneNumber>
            </ns:Contact>
            <ns:Address>
                <ns:StreetLines>Street</ns:StreetLines>
                <ns:StreetLines>Street</ns:StreetLines>
                <ns:City>City</ns:City>
                <ns:StateOrProvinceCode>CA</ns:StateOrProvinceCode>
                <ns:PostalCode>ZIP</ns:PostalCode>
                <ns:CountryCode>US</ns:CountryCode>
            </ns:Address>
        </ns:Shipper>
        <ns:Recipient>
            <ns:Contact>
                <ns:PersonName>Name</ns:PersonName>
                <ns:PhoneNumber>Phone</ns:PhoneNumber>
            </ns:Contact>
            <ns:Address>
                <ns:StreetLines>123 MAIN STREET</ns:StreetLines>
                <ns:StreetLines>MAIL SLOT 45</ns:StreetLines>
                <ns:City>City</ns:City>
                <ns:StateOrProvinceCode>CA</ns:StateOrProvinceCode>
                <ns:PostalCode>Xip</ns:PostalCode>
                <ns:CountryCode>US</ns:CountryCode>
            </ns:Address>
        </ns:Recipient>
        <ns:ShippingChargesPayment>
            <ns:PaymentType>SENDER</ns:PaymentType>
            <ns:Payor>
                <ns:ResponsibleParty>
                    <ns:AccountNumber></ns:AccountNumber>
                    <ns:Contact>
                        <ns:CompanyName>Name</ns:CompanyName>
                    </ns:Contact>
                    <ns:Address>
                        <ns:CountryCode>US</ns:CountryCode>
                    </ns:Address>
                </ns:ResponsibleParty>
            </ns:Payor>
        </ns:ShippingChargesPayment>
        <ns:SpecialServicesRequested>
        </ns:SpecialServicesRequested>
        <ns:LabelSpecification>
            <ns:LabelFormatType>COMMON2D</ns:LabelFormatType>
            <ns:ImageType>ZPLII</ns:ImageType>
            <ns:LabelStockType>STOCK_4X6</ns:LabelStockType>
            <ns:LabelPrintingOrientation>TOP_EDGE_OF_TEXT_FIRST</ns:LabelPrintingOrientation>
            <ns:PrintedLabelOrigin>
                <ns:Contact>
                    <ns:CompanyName>Company</ns:CompanyName>
                    <ns:PhoneNumber>Phone</ns:PhoneNumber>
                </ns:Contact>
                <ns:Address>
                    <ns:StreetLines>Street</ns:StreetLines>
                    <ns:City>City</ns:City>
                    <ns:StateOrProvinceCode>CA</ns:StateOrProvinceCode>
                    <ns:PostalCode>Zip</ns:PostalCode>
                    <ns:CountryCode>US</ns:CountryCode>
                </ns:Address>
            </ns:PrintedLabelOrigin>
        </ns:LabelSpecification>
        <ns:RateRequestTypes>LIST</ns:RateRequestTypes>
        <ns:PackageCount>1</ns:PackageCount>
        <ns:RequestedPackageLineItems>
            <ns:SequenceNumber>1</ns:SequenceNumber>
            <ns:Weight>
                <ns:Units>LB</ns:Units>
                <ns:Value>8</ns:Value>
            </ns:Weight>
            <ns:Dimensions>
                <ns:Length>5</ns:Length>
                <ns:Width>5</ns:Width>
                <ns:Height>4</ns:Height>
                <ns:Units>IN</ns:Units>
            </ns:Dimensions>
            <ns:CustomerReferences>
                <ns:CustomerReferenceType>CUSTOMER_REFERENCE</ns:CustomerReferenceType>
                <ns:Value>CD0000002199</ns:Value>
            </ns:CustomerReferences>
            <ns:CustomerReferences>
                <ns:CustomerReferenceType>P_O_NUMBER</ns:CustomerReferenceType>
                <ns:Value>0000497600</ns:Value>
            </ns:CustomerReferences>
            <ns:SpecialServicesRequested>
                <ns:SpecialServiceTypes>DRY_ICE</ns:SpecialServiceTypes>
                <ns:SpecialServiceTypes>SIGNATURE_OPTION</ns:SpecialServiceTypes>
                <ns:DryIceWeight>
                    <ns:Units>KG</ns:Units>
                    <ns:Value>2.5</ns:Value>
                </ns:DryIceWeight>
                <ns:SignatureOptionDetail>
                    <ns:OptionType>DIRECT</ns:OptionType>
                </ns:SignatureOptionDetail>
            </ns:SpecialServicesRequested>
        </ns:RequestedPackageLineItems>
    </ns:RequestedShipment>
</ns:ProcessShipmentRequest>
票数 5
EN

Stack Overflow用户

发布于 2016-10-28 15:40:28

这里是我从文档开始的示例代码,但是它没有返回速率的变化。我想包括干冰费

代码语言:javascript
复制
ini_set("soap.wsdl_cache_enabled", "0");

$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(
    'ParentCredential' => array(
        'Key' => getProperty('parentkey'),
        'Password' => getProperty('parentpassword')
    ),
    'UserCredential' => array(
        'Key' => getProperty('key'), 
        'Password' => getProperty('password')
    )
); 
$request['ClientDetail'] = array(
    'AccountNumber' => getProperty('shipaccount'), 
    'MeterNumber' => getProperty('meter')
);
$request['TransactionDetail'] = array('CustomerTransactionId' => ' *** Rate Request using PHP ***');
$request['Version'] = array(
    'ServiceId' => 'crs', 
    'Major' => '20', 
    'Intermediate' => '0', 
    'Minor' => '0'
);
$request['ReturnTransitAndCommit'] = true;
$request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP, REQUEST_COURIER, ...
$request['RequestedShipment']['ShipTimestamp'] = date('c');

$request['RequestedShipment']['SpecialServicesRequested']['ShipmentSpecialServiceType']= "DRY_ICE";
$request['RequestedShipment']['specialServicesRequested']['shipmentDryIceDetail']['packageCount']= 5;
$request['RequestedShipment']['specialServicesRequested']['shipmentDryIceDetail']['totalweight']= 50;
$request['RequestedShipment']['specialServicesRequested']['ShipmentSpecialServiceType'] = 'DRY_ICE';

$request['RequestedShipment']['ServiceType'] = 'INTERNATIONAL_PRIORITY'; // 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']['TotalInsuredValue']=array(
    'Ammount'=>100,
    'Currency'=>'USD'
);
$request['RequestedShipment']['Shipper'] = addShipper();
$request['RequestedShipment']['Recipient'] = addRecipient();
$request['RequestedShipment']['ShippingChargesPayment'] = addShippingChargesPayment();
$request['RequestedShipment']['PackageCount'] = '1';
$request['RequestedShipment']['RequestedPackageLineItems'] = addPackageLineItem1();
票数 0
EN

Stack Overflow用户

发布于 2016-11-01 09:04:09

我能够通过下面的代码添加干冰

代码语言:javascript
复制
$path_to_wsdl = "wsdl/RateService_v20.wsdl";

ini_set("soap.wsdl_cache_enabled", "0");

$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(
    'ParentCredential' => array(
        'Key' => getProperty('parentkey'),
        'Password' => getProperty('parentpassword')
    ),
    'UserCredential' => array(
        'Key' => getProperty('key'),
        'Password' => getProperty('password')
    )
);
$request['ClientDetail'] = array(
    'AccountNumber' => getProperty('shipaccount'),
    'MeterNumber' => getProperty('meter')
);
$request['TransactionDetail'] = array('CustomerTransactionId' => ' *** Rate Request using PHP ***');
$request['Version'] = array(
    'ServiceId' => 'crs',
    'Major' => '20',
    'Intermediate' => '0',
    'Minor' => '0'
);
$request['ReturnTransitAndCommit'] = true;
$request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP, REQUEST_COURIER, ...
$request['RequestedShipment']['ShipTimestamp'] = date('c');



/* * *********Adding Dry Ice * */
$request['RequestedShipment']['SpecialServicesRequested']['SpecialServiceTypes'] = 'DRY_ICE';
$request['RequestedShipment']['SpecialServicesRequested']['DryIceWeight'] = '5';
$request['RequestedShipment']['SpecialServicesRequested']['ShipmentDryIceDetail']['PackageCount'] = '1';

$request['RequestedShipment']['ServiceType'] = 'INTERNATIONAL_PRIORITY'; // 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']['TotalInsuredValue'] = array(
    'Ammount' => 100,
    'Currency' => 'USD'
);
$request['RequestedShipment']['Shipper'] = addShipper();

$request['RequestedShipment']['Recipient'] = addRecipient();
$request['RequestedShipment']['ShippingChargesPayment'] = addShippingChargesPayment();
$request['RequestedShipment']['PackageCount'] = '1';
$request['RequestedShipment']['RequestedPackageLineItems'] = addPackageLineItem1();


try {
    if (setEndpoint('changeEndpoint')) {
        $newLocation = $client->__setLocation(setEndpoint('endpoint'));
    }

    $response = $client->getRates($request);



    if ($response->HighestSeverity != 'FAILURE' && $response->HighestSeverity != 'ERROR') {
        $rateReply = $response->RateReplyDetails;
        echo '<table border="1">';
        echo '<tr><td>Service Type</td><td>Amount</td><td>Delivery Date</td></tr><tr>';
        $serviceType = '<td>' . $rateReply->ServiceType . '</td>';
        if ($rateReply->RatedShipmentDetails && is_array($rateReply->RatedShipmentDetails)) {
            $amount = '<td>$' . number_format($rateReply->RatedShipmentDetails[0]->ShipmentRateDetail->TotalNetCharge->Amount, 2, ".", ",") . '</td>';
        } elseif ($rateReply->RatedShipmentDetails && !is_array($rateReply->RatedShipmentDetails)) {
            $amount = '<td>$' . number_format($rateReply->RatedShipmentDetails->ShipmentRateDetail->TotalNetCharge->Amount, 2, ".", ",") . '</td>';
        }
        if (array_key_exists('DeliveryTimestamp', $rateReply)) {
            $deliveryDate = '<td>' . $rateReply->DeliveryTimestamp . '</td>';
        } else if (array_key_exists('TransitTime', $rateReply)) {
            $deliveryDate = '<td>' . $rateReply->TransitTime . '</td>';
        } else {
            $deliveryDate = '<td>&nbsp;</td>';
        }
        echo $serviceType . $amount . $deliveryDate;
        echo '</tr>';
        echo '</table>';

        printSuccess($client, $response);
    } else {
        printError($client, $response);
    }
    writeToLog($client);    // Write to log file   
} catch (SoapFault $exception) {
    printFault($exception, $client);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40167744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档