Вопрос

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

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

Я подозреваю, что что-то не так в структуре вашего запроса (например, отсутствует заголовок), поскольку содержимое 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?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top