8
votes

Python HTTplib Name ou service non connu

J'essaie d'utiliser HTTPLIB pour envoyer des informations de carte de crédit à Autherize.net. Lorsque j'essaie de poster la demande, je reçois la trace suivante:

mystring = urllib.urlencode(cardHash)
headers = {"Content-Type": "text/xml", "Content-Length": str(len(mystring))}
conn = httplib.HTTPSConnection("secure.authorize.net:443", source_address=("myurl.com", 443))
conn.request("POST", "/gateway/transact.dll", mystring, headers)


3 commentaires

Que se passe-t-il avec une demande d'obtention, même chemin, aucun en-tête?


même chose que sur un post.


HM, le script fonctionne bien ici, même d'arriver à L'ID de connexion du marchand ou le mot de passe est invalide ou le compte est inactif. Si j'imprime la réponse. Se concentrer sur les problèmes de réseau;


4 Réponses :



7
votes

GAierRor: [Errno -2] Nom ou service non connu

Cette erreur indique souvent une défaillance de votre résolveur DNS. ping sécurisé.authorize.net renvoie des réponses réussies du même serveur qui reçoit le Gaierror? Le nom d'hôte a-t-il une faute de frappe?


3 commentaires

Ping retourne un message "Filtré par paquets" et échoue. Je supposerais que cela est parce qu'il est sécurisé et n'acceptera que le port 443. À ce stade, je reçois un message «permission refusé». Je ne sais pas si c'est un pas en avant ou en arrière.


Chris, je suis capable de ping sûr.Authorize.net avec succès. Qu'est-ce que nslookup sécurisé.authorize.net vous dit?


Serveur: 192.168.3.1 Adresse: 192.168.3.1 # 53 Réponse non autoritaire: Nom: Secure.Autorize.net Adresse: 64.94.118.33 Nom: Secure.Authorize.net Adresse: 64.94.118.32



2
votes

Le problème s'est finalisé au fait que SELINUX arrêtait Apache d'obtenir ce port. Désactiver SELINUX Fixe les problèmes. J'ai eu un problème plus tard où je n'avais pas /var/www/.python-eggs/, alors MySQLDB a atteint l'importation. Mais après un mkdir, il a été corrigé.


0 commentaires

18
votes

comme une tête (évidente) en tête, cette même erreur peut également être déclenchée en incluant le protocole dans le paramètre d'hôte. Par exemple, ce code:

conn = httplib.HTTPConnection("http://secure.authorize.net", 80, ....)  


0 commentaires