2009-08-19 2 views
1

Если кто имеет опыт работы с USPS подтверждения доставки API, я бы очень признателен за любое понимание я могу получить ...USPS API путаница

Я использую PHP и CURL для отправки запроса XML в API DC , Когда я посылаю ответ через cURL, я ничего не получаю. Нет ответа об ошибке, нет XML или что-то еще. Когда я отправляю XML через браузер, я получаю ответ об ошибке, который является хотя бы ответом. Я нахожусь в тупике, потому что ошибка, которую я получаю через браузер (по их линии поддержки), означает, что их проблемы с сервером влияют на API. Однако я не знаю, почему я не смог бы получить этот ответ через cURL.

ответ

1

Мы используем API проверки адресов и .NET, а не Подтверждение доставки и PHP, но, возможно, я могу помочь.

XML, который вы посылаете почтовое отделение должно быть просто участником строки запроса, как это:

https://servername/ShippingAPITest.dll?API=DeliveryConfirmationV3&XML=<DeliveryConfirmationV3.0Request USERID="username">…….</DeliveryConfirmationV3.0Request> 

Тогда они просто служат вас документ XML обратно. Я никогда не использовал библиотеку cURL, но, возможно, вы можете проверить, что это то, что она действительно отправляет.

Кроме того, были ли вы еще утверждены? Если нет, тогда они разрешают только консервированные тестовые ответы. Все остальное даст вам ошибку, даже если она будет действительна на рабочем сервере.

+0

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

0

Мое подозрение, что что-то не в структуре вашего запроса (например, отсутствует заголовок), поскольку XML-контент звучит так, как будто он действителен (или, по крайней мере, как серверы USPS читают его правильно).

Наша реализация API USPS использует сырье TCP/IP соединение с fsockopen, который имеет то преимущество, что я могу подтвердить, что именно мы посылаем в структуре запроса: POST /ShippingAPI.dll HTTP/1.0

Только заголовки мы в комплект поставки по запросу:

User-Agent: (foo)\r\n 
Host: (bar)\r\n 
Content-Type: text/xml\r\n 
Content-Length: strlen($xml)\r\n\r\n 

Это соответствует тому, что вы отправляете через cURL?

Смежные вопросы