Question

Si quelqu'un a une expérience avec l'API de confirmation de livraison USPS, j'apprécierions vraiment une idée que je peux obtenir ...

J'utilise pour envoyer une requête XML à l'API PHP et C.C. cURL. Lorsque j'envoie la réponse par cURL, je ne reçois rien. Aucune réponse d'erreur, pas XML, ou quoi que ce soit. Lorsque j'envoie le XML via un navigateur, je reçois une réponse d'erreur, qui est au moins une réponse. Je suis à l'arrêt parce que l'erreur que je reçois via le navigateur apparantly (en fonction de leur ligne de soutien) signifie que leurs problèmes de serveur affectent l'API. Cependant, je ne sais pas pourquoi je ne serais pas en mesure d'obtenir cette réponse par cURL.

Était-ce utile?

La solution

Nous utilisons l'API de validation d'adresses et .NET, pas de confirmation de livraison et PHP, mais je peux peut-être aider.

Le XML que vous envoyez au bureau de poste ne devrait être qu'une partie de la chaîne de requête comme ceci:

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

Alors ils vous servent un premier document XML de retour. Je ne l'ai jamais utilisé la bibliothèque cURL, mais peut-être que vous pouvez vérifier que c'est ce qu'il fait envoyer.

En outre, vous avez encore été approuvé? Sinon, ils ne permettent que les réponses de test en conserve. Rien d'autre vous donnera une erreur, même si elle serait valide sur le serveur de production.

Autres conseils

Je soupçonne que quelque chose est hors de la structure de votre demande (par exemple, un en-tête manquant), car le contenu XML sonne comme il est valide (ou au moins comme les serveurs de USPS lire correctement).

Notre implémentation de l'API USPS utilise une connexion TCP / IP brute avec fsockopen, qui a l'avantage que je peux confirmer précisément ce que nous envoyons dans la structure de la demande: POST /ShippingAPI.dll HTTP/1.0

Les seuls les en-têtes nous y compris sur la demande sont les suivants:

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

Est-ce que correspondent à ce que vous envoyez par cURL?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top