Как обрабатывать исключительные случаи при интеграции USPS API?

Какое сообщение появляется при возникновении исключения USPS? Имя API: Информация об отслеживании и доставке.

Я успешно интегрировал USPS API на свой компьютер. Я могу получить статус продукта с номером отслеживания, но могут быть условия, когда в API может возникнуть исключение, я хочу управлять оповещением об этом условии, чтобы меня могли информировать об этом случае. Я хочу знать, как я могу обнаружить исключение?


person Deepak Goswami    schedule 12.02.2014    source источник
comment
Какой API вы используете? usps.com/business/web- tools-apis/track-and-confirm-v1-3a.pdf   -  person Charlie    schedule 12.02.2014
comment
API информации об отслеживании и доставке. И это я уже проверил, но мне это не помогло.   -  person Deepak Goswami    schedule 12.02.2014


Ответы (3)


Я использовал API EasyPost для получения более подробной информации об отслеживании и доставке? Это может быть полезно? Я обнаружил, что уведомления об исключениях USPS не очень полезны.

В противном случае вы можете настроить службу уведомлений об исключениях, чтобы предупреждать вас о возникновении исключений API.

person jwmares    schedule 13.02.2014

Я заметил, что есть еще одна форма этого API, где вы получаете гораздо больше информации в ответе. Передайте этот XML-документ в параметре строки запроса "XML":

<TrackFieldRequest USERID="XXXXXXXX">
  <Revision>1</Revision>
  <ClientIp>x.x.x.x</ClientIp>
  <SourceId>customer / company name</SourceId>
  <TrackID ID="9102xxxxxxxxx"></TrackID>
</TrackFieldRequest>

И ответ с этим XML-документом выглядит так:

<TrackResponse>
  <TrackInfo ID="9102xxxxxx">
    <Class>Priority Mail 3-Day<SUP>&#153;</SUP></Class>
    <ClassOfMailCode>PM</ClassOfMailCode>
    <DestinationCity>TOMAHAWK</DestinationCity>
    <DestinationState>WI</DestinationState>
    <DestinationZip>54487</DestinationZip>
    <EmailEnabled>true</EmailEnabled>
    <ExpectedDeliveryDate>March 4, 2014</ExpectedDeliveryDate>
    <KahalaIndicator>false</KahalaIndicator>
    <MailTypeCode>DM</MailTypeCode>
    <MPDATE>2014-03-01 20:19:24.000000</MPDATE>
    <MPSUFFIX>121219566</MPSUFFIX>
    <OriginCity>EAST FALMOUTH</OriginCity>
    <OriginState>MA</OriginState>
    <OriginZip>02536</OriginZip>
    <PodEnabled>false</PodEnabled>
    <RestoreEnabled>false</RestoreEnabled>
    <RreEnabled>false</RreEnabled>
    <Service>$50 insurance included</Service>
    <Service>USPS Tracking<SUP>&#153;</SUP></Service>
    <ServiceTypeCode>055</ServiceTypeCode>
    <Status>Processed at USPS Origin Sort Facility</Status>
    <StatusCategory>In Transit</StatusCategory>
    <StatusSummary>Your item has been processed at the origin sort facility at 11:45 pm on March 1, 2014 in NASHUA, NH 03063.</StatusSummary>
    <TABLECODE>T</TABLECODE>
    <TrackSummary>
      <EventTime>11:45 pm</EventTime>
      <EventDate>March 1, 2014</EventDate>
      <Event>Processed at USPS Origin Sort Facility</Event>
      <EventCity>NASHUA</EventCity>
      <EventState>NH</EventState>
      <EventZIPCode>03063</EventZIPCode>
      <EventCountry/>
      <FirmName/><Name/><AuthorizedAgent>false</AuthorizedAgent>
      <EventCode>10</EventCode>
    </TrackSummary>
    <TrackDetail>
      <EventTime/>
      <EventDate>March 1, 2014</EventDate>
      <Event>Electronic Shipping Info Received</Event>
. . .
person Shiprack    schedule 02.03.2014

Я нашел результат сам

Но после долгих исследований я нашел решение своей проблемы. который приведен ниже:

В API-интеграции USPS «Информация об отслеживании и доставке» есть два типа формата XML-запроса, которые мы можем отправить на сервер USPS для получения ответа о доставке посылки по ее номеру отслеживания двумя разными способами.

1) Веб-инструмент «Отслеживание/подтверждение»: предназначен только для отображения и в ответ возвращает только текстовые сообщения (сводку и подробности).

Подпись API (URL):
http://production.shippingapis.com/ShippingAPI.dll?API=TrackV2 //Текущий сервер
Или
http://production.shippingapis.com/ShippingAPITest.dll?API=TrackV2 //Тестовый сервер

Параметры запроса:

<TrackRequest USERID=”xxxxxxxx”>
    <TrackID ID="EJ123456780US"></TrackID>
</TrackRequest>

Он возвращает параметры ответа: только сводку и детализацию.

<TrackResponse>
  <TrackInfo ID="E123456780US">
    <TrackSummary>
      Your item was delivered at 6:50 am on February 6 in BARTOW FL 33830.        
    </TrackSummary>
    <TrackDetail>February 6 6:49 am NOTICE LEFT BARTOW FL 33830</TrackDetail>
    <TrackDetail>February 6 6:48 am ARRIVAL AT UNIT BARTOW FL 33830</TrackDetail>
    <TrackDetail>February 6 3:49 am ARRIVAL AT UNIT LAKELAND FL 33805</TrackDetail>
    <TrackDetail>February 5 7:28 pm ENROUTE 33699</TrackDetail>
    <TrackDetail>February 5 7:18 pm ACCEPT OR PICKUP 33699</TrackDetail>
  </TrackInfo>
</TrackResponse>

2) Веб-инструмент отслеживания/подтверждения полей: - Это формат запроса, который работал у меня, я протестировал его, реализовав это. Этот запрос возвращает полную информацию о номере отслеживания посылки, например: - Подпись API (URL): такая же, как и для первого.

Пример запроса:

<TrackFieldRequest USERID=" xxxxxxxx">
 <TrackID ID="01805213907042762274"></TrackID>
</TrackFieldRequest>

Пример ответа:

<TrackResponse>
    <TrackInfo ID="01805213907042762274">
        <TrackSummary>
            <EventTime>12:12 pm</EventTime>
            <EventDate>May 21, 2001</EventDate>
            <Event>DELIVERED</Event>
            <EventCity>NEWTON</EventCity>
            <EventState>IA</EventState>
            <EventZIPCode>50208</EventZIPCode>
            <EventCountry/>
            <FirmName></FirmName>
            <Name></Name>
            <AuthorizedAgent></AuthorizedAgent>
        </TrackSummary>
        <TrackDetail>
            <EventTime>9:24 pm</EventTime>
            <EventDate>March 28, 2001</EventDate>
            <Event>ENROUTE</Event>
            <EventCity>DES MOINES</EventCity>
            <EventState>IA</EventState>
            <EventZIPCode>50395</EventZIPCode>
            <EventCountry/>
            <FirmName/>
            <Name/>
            <AuthorizedAgent/>
        </TrackDetail>
    .
    .
    .
</TrackResponse>

Примечание. Я преобразовал этот XML-ответ в простой PHP-массив и использовал поле «Событие» для управления оповещениями для всех условий, таких как ENROUTE/DELIVERED и т. д. И управлять ошибкой/исключением, возникающим по его идентификатору ошибки, который возвращается в его массиве ответов.

Подробнее см.

person Deepak Goswami    schedule 17.02.2014