我正在使用UPS TimeInTransit API通过Magento 2网站上的目的地邮政编码查找估计发货。昨天它已经停止工作,没有给出目的地城市,没有显示结果。之前它工作正常,并根据输入的邮政编码给予我所需的结果。为什么TimeInTransit API不工作,只有目的地邮政编码?
使用代码:
$data ="<?xml version=\"1.0\"?>
<AccessRequest xml:lang='en-US'>
<AccessLicenseNumber>111112414134</AccessLicenseNumber>
<UserId>1213243</UserId>
<Password>13124123</Password>
</AccessRequest>
<?xml version='1.0'?>
<TimeInTransitRequest xml:lang='en-US'>
<Request>
<TransactionReference>
<CustomerContext>Site Name</CustomerContext>
<XpciVersion>1.001</XpciVersion>
</TransactionReference>
<RequestAction>TimeInTransit</RequestAction>
</Request>
<TransitFrom>
<AddressArtifactFormat>
<PoliticalDivision2>Lake Elsinore</PoliticalDivision2>
<PoliticalDivision1>California</PoliticalDivision1>
<PostcodePrimaryLow>92530</PostcodePrimaryLow>
<CountryCode>US</CountryCode>
</AddressArtifactFormat>
</TransitFrom>
<TransitTo>
<AddressArtifactFormat>
<PoliticalDivision2></PoliticalDivision2>
<PoliticalDivision1></PoliticalDivision1>
<PostcodePrimaryLow>92562</PostcodePrimaryLow>
<CountryCode></CountryCode>
</AddressArtifactFormat>
</TransitTo>
<PickupDate>$today</PickupDate>
<MaximumListSize>5</MaximumListSize>
<InvoiceLineTotal>
<CurrencyCode>USD</CurrencyCode>
<MonetaryValue>1</MonetaryValue>
</InvoiceLineTotal>
<ShipmentWeight>
<UnitOfMeasurement>
<Code>$this->weightUnits</Code>
<Description>Pounds</Description>
</UnitOfMeasurement>
<Weight>$packageWeight</Weight>
</ShipmentWeight>
</TimeInTransitRequest>";
// This is the PRODUCTION server -- use when your testing is finished.
// https://onlinetools.ups.com/ups.app/xml/TimeInTransit
//This is the TESTING SERVER.
//https://wwwcie.ups.com/ups.app/xml/TimeInTransit
$ch = curl_init("https://onlinetools.ups.com/ups.app/xml/TimeInTransit");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_TIMEOUT, 60);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$result=curl_exec ($ch);
//echo '<!-- '. $result. ' -->'; // THIS LINE IS FOR DEBUG PURPOSES ONLY-IT WILL SHOW IN HTML COMMENTS
$data = strstr($result, '<?');
$xml = simplexml_load_string($data);
$json = json_encode($xml);
$dataArray = json_decode($json,TRUE);
错误响应:[错误] =〉数组([错误严重性] =〉硬[错误代码] =〉270032 [错误说明] =〉无效的目标邮政编码和城市)
1条答案
按热度按时间lf5gs5x21#
我在TimeInTransit上也遇到了同样的问题,在UPS状态页面或更改日志中找不到任何解释。文档中明确说明城市是可选的。我的代码已经运行多年,在请求中只指定了始发地邮政编码、目的地邮政编码和重量。起初,我收到错误“TimeInTransit中的始发地邮政编码无效”,我通过在XML的PoliticalDivision2中指定始发地城市来解决该问题。(但不是全部)。对于这些请求,我得到了:“无效的目的地邮政编码和城市失败。”一旦我更新了代码,以指定目的地城市以及在政治部门2,它的工作。