Ответ от USPS Rate Calculator

#c# #.net #vb.net #web-services #usps

#c# #.net #vb.net #веб-сервисы #usps

Вопрос:

Мне нужно получить тарифы на доставку от USPS.

Я зарегистрировался у них, получил идентификатор пользователя и пытаюсь использовать образец запроса XML, как показано на странице — https://www.usps.com/webtools/htm/Rate-Calculators-v1-3.htm , но продолжаю получать следующий ответ об ошибке.

 <Error>
<Number>80040b1a</Number>
<Description>API Authorization failure. RateV4 is not a valid API name for this protocol.</Description>
<Source>UspsCom::DoAuth</Source>
  

Я не могу понять, где я упускаю суть. Google также не помог 🙁

Я передаю имя API как RateV4. Я также пробовал использовать API международной доставки — IntlRateV2. И да, я пробовал безопасный https://secure.shippingapis.com/ShippingAPITest.dll api тоже. И я отправил письмо в службу поддержки. Ничего не сработало.

Как только эта базовая вещь заработает, я планирую получить классы и использовать пользовательскую сериализацию для сериализации моего запроса, а затем десериализовать ответ. Это было бы лучше, чем использовать XMLS напрямую. Но это, вероятно, было бы более подходящим в качестве другого вопроса. Получение базовой работы — это проблема прямо сейчас. Спасибо

Комментарии:

1. Опубликуйте свой код. Ошибка clear…usps.com/webtools/htm/Rate-Calculators-v1-3.htm даже у меня это не сработало. Имя API, скорее всего, будет RateV3, а не RateV4 на основе страницы htm.

2. Тестовые серверы USPS не поддерживают версию 4. Запрошен доступ к prod-серверам, и он работает нормально. Спасибо. Жаль, что об этом НИГДЕ четко не упоминается… (Только что выполнил два фиктивных запроса с использованием версии V2 и получил доступ к серверам prod.)

Ответ №1:

Это означает, что сервер, на который вы ориентируетесь, не поддерживает RateV4. Я думаю, вам нужно использовать производственный сервер для RateV4 даже при выполнении тестов.

Комментарии:

1. Спасибо, Саймон. Это то, о чем я продолжаю думать. Но они упомянули, что «адрес тестового сервера либо testing.shippingapis.com/ShippingAPITest.dll или secure.shippingapis.com/ShippingAPITest.dll «. Придется снова попытаться связаться со службой поддержки клиентов 🙁

2. Оказывается, проблема не в коде. Тестовые серверы USPS не поддерживают версию 4 API rate. Версия V2 работала нормально. Запросил USPS для доступа к серверу prod, и версия 4 работала нормально. Еще раз спасибо.

3. И для тех, кто пытается использовать V2 международных тарифов на доставку, это не поддерживается тестовыми серверами. Вы должны получить доступ к prod-серверам для тестирования!

4. Версия V2 больше не поддерживается тестовыми серверами. Как они ожидают, что кто-то будет их использовать, мне неведомо.

Ответ №2:

В настоящее время ни одна версия Rate API фактически не работает на тестовых серверах USPS (как отметил CountMurphy в предыдущем комментарии). Однако вам необходимо выполнить несколько успешных запросов API на тестовом сервере, прежде чем ваша учетная запись будет одобрена для доступа к рабочему серверу. После некоторых встреч с USPS они указали мне на сертификацию API TrackV2 вместо этого. Это также дает вам доступ к API Rate.

Вот два примера запросов TrackV2, которые я получил от службы поддержки USPS. Обязательно укажите фактическое значение идентификатора пользователя. Вы должны использовать эти точные номера меток.

Пример #1

 http://production.shippingapis.com/ShippingAPITest.dll?API=TrackV2
amp;XML=<TrackRequest USERID="xxxxxxxx">
<TrackID ID="EJ958083578US"></TrackID></TrackRequest>
  

Пример #2

 http://production.shippingapis.com/ShippingAPITest.dll?API=TrackV2
amp;XML=<TrackRequest USERID="xxxxxxxx">
<TrackID ID="EJ958088694US"></TrackID></TrackRequest>
  

Комментарии:

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

Ответ №3:

Когда вы попробуете V2, это то, что вы получите

 <Error>
<Number>80040b1a</Number>
<Description>API Disabled: RateV2.  </Description>
<Source>UspsCom::DoAuth</Source>
  

Комментарии:

1. Когда я пытался это сделать, номер ошибки был таким же. Хорошо, что они изменили описание на что-то, что имеет смысл. 🙂