我正在使用FeDex API来运送标签打印。 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
)
);
有谁知道如何成为有效请求?
答案 0 :(得分:13)
FedEx Rate API 与 FedEx Shipping API 之间存在差异。您可以使用一个SOAP请求对多个包进行评级;但是,要运送多件货件(MPS),您必须为每个包裹执行送货请求。
第一个包(第一个请求中的包)将是包含主跟踪号的 主 。获得此主跟踪号后,您必须将其附加到剩余包的运送请求中。有关MPS货件的更多信息,请参阅最新的 FedEx开发人员指南,并从FedEx开发人员门户网站下载执行 Express国内MPS货件的示例。
需要注意的是,运输过程不会作为交易发生,因此如果您尝试运送3个包,并且包1和2已成功提交,但包3因未知原因而失败,则您负责取消包1和2或重新提交包3.我建议任何人在创建实际货件之前验证货件(使用相同的运输API)。
最佳!
答案 1 :(得分:1)
FeDex手册有一个错误:" MasterTrackingID"是错的。 " MasterTrackingId"是对的。