6

ラベルの印刷にFeDexAPIを使用しています。1つのパッケージのラベルは正常に印刷されますが、複数のパッケージを印刷しようとするとエラーが発生します。

stdClass Object
(
[Severity] => ERROR
[Source] => ship
[Code] => 2463
[Message] => The number of RequestedPackages in the RequestedShipment must be equal to 1
[LocalizedMessage] => The number of RequestedPackages in the RequestedShipment must be    equal to 1
)

リクエストにTotalWeight、PackageCountを含めましたが、役に立ちません

$request['WebAuthenticationDetail'] = array('UserCredential' =>array('Key' => $auth['key'], 'Password' => $auth['password']));
$request['ClientDetail'] = array('AccountNumber' => $auth['accountNumber'], 'MeterNumber' => $auth['meterNumber']);
$request['TransactionDetail'] = array('CustomerTransactionId' => '*** Ground Domestic Shipping Request v12 using PHP ***');
$request['Version'] = array('ServiceId' => 'ship', 'Major' => '12', 'Intermediate' => '1', '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' => $this->addShipper(),
                                      'Recipient' => $this->recipient,
                                      'ShippingChargesPayment' => $this->addShippingChargesPayment(),
                                      'LabelSpecification' => $this->addLabelSpecification(), 
                                      'RateRequestTypes' => array('LIST'), // valid values ACCOUNT and LIST
                                      'PackageCount' => count($this->packages),
                                      'TotalWeight' => array('Value' => array_sum($this->packages), 'Units' => 'LB'),
                                      'TotalShipmentWeight' => array('Value' => array_sum($this->packages), 'Units' => 'LB'),
                                      'PackageDetail' => 'INDIVIDUAL_PACKAGES',                                        
                                      'RequestedPackageLineItems' => $this->packageLineItem//array('0' => $this->packageLineItem)
);      


$this->packageLineItem[] = array('SequenceNumber'=>$i,
              'GroupPackageCount' => count($this->packages),
              'MasterTrackingID' => '123123123123',
              'TotalShipmentWeight' => array('Value' => array_sum($this->packages), 'Units' => 'LB'),
              'Weight' => array('Value' => $this->packages[$i-1], //weight!!!!!!!!!!!!!
                                'Units' => 'LB'),
              'CustomerReferences' => array('0' => array('CustomerReferenceType' => 'CUSTOMER_REFERENCE', 
                                                         'Value' => 'GR4567892'), // valid values CUSTOMER_REFERENCE, INVOICE_NUMBER, P_O_NUMBER and SHIPMENT_INTEGRITY
                                            '1' => array('CustomerReferenceType' => 'INVOICE_NUMBER', 
                                                         'Value' => 'INV4567892'),
                                            '2' => array('CustomerReferenceType' => 'P_O_NUMBER', 
                                                         'Value' => 'PO4567892')),
              'SpecialServicesRequested' => array('SpecialServiceTypes' => array('COD'),
                                                  'CodDetail' => array('CodCollectionAmount' => array('Currency' => 'USD', 'Amount' => 150),
                                                                       'CollectionType' => 'ANY')// ANY, GUARANTEED_FUNDS
                                                 )
 );

誰かが有効なリクエストになる方法を知っていますか?

4

3 に答える 3

19

FedEx Rate APIFedEx Shipping APIには違いがあります。1 つの SOAP リクエストを使用して複数のパッケージを評価できます。ただし、複数個口発送 (MPS)を発送するには、パッケージごとに発送依頼を行う必要があります。

最初のパッケージ (最初のリクエストのパッケージ) は、マスター追跡番号を含むマスターになります。このマスター追跡番号を取得したら、それを残りの荷物の発送依頼に添付する必要があります。MPS 出荷の詳細については、最新のFedEx 開発者ガイドを参照し、FedEx 開発者ポータルからエクスプレス国内 MPS 出荷を実行する例をダウンロードしてください。

注意すべきことは、発送プロセスはトランザクションとして発生しないということです。そのため、3 つのパッケージを発送しようとしていて、パッケージ 1 と 2 が正常に送信され、パッケージ 3 が不明な理由で失敗した場合、パッケージをキャンセルする責任があります。 1 と 2、またはパッケージ 3 を再送信します。実際の出荷を作成する前に、(同じ出荷 API を使用して) 出荷を検証することをお勧めします。

一番!

于 2013-05-09T04:59:20.777 に答える
1

FeDex のマニュアルに誤りがあります: "MasterTrackingID" が間違っています。「MasterTrackingId」は正しいです。

于 2013-03-22T08:24:14.643 に答える