Я использую среду тестирования веб-служб FedEx с набором учетных данных. Я получил пару запросов ProcessShipment
/ DeleteShipment
:
ProcessShipment
создает новый груз и возвращает номер для отслеживания.
DeleteShipment
удаляет груз, учитывая номер отслеживания с шага 1.
Теперь, когда я отправляю запрос TrackShipment
между этими двумя шагами, он отвечает «Этот номер отслеживания не найден». Вопрос: почему бы TrackShipment
не найти номер для отслеживания, когда DeleteShipment
обнаружит?
Вот как выглядит мой TrackShipment
запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://fedex.com/ws/track/v16">
<soapenv:Body>
<TrackRequest>
<WebAuthenticationDetail>...</WebAuthenticationDetail>
<ClientDetail>...</ClientDetail>
<Version>
<ServiceId>trck</ServiceId>
<Major>16</Major>
<Intermediate>0</Intermediate>
<Minor>0</Minor>
</Version>
<SelectionDetails>
<CarrierCode>FDXE</CarrierCode>
<PackageIdentifier>
<Type>TRACKING_NUMBER_OR_DOORTAG</Type>
<Value>794635174178</Value>
</PackageIdentifier>
</SelectionDetails>
</TrackRequest>
</soapenv:Body>
</soapenv:Envelope>
В документации FedEx Web Services есть список фиктивных номеров отслеживания, по крайней мере один из них возвращает правильную информацию отслеживания, когда я отправляю ее с вышеуказанным запросом. Можно подумать, что, поскольку FedEx предоставляет контрольные номера отслеживания, среда тестирования на самом деле не отслеживает поставки, и только контрольные номера должны давать положительные результаты. Однако запрос DeleteShipment
ведет себя так, как если бы груз был реальным, а не поддельным.
P.S. Я проверил, что CarrierCode
совпадает с возвращенным ProcessShipment
.