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)
4 Réponses :
Passez le port séparément de l'hôte:
conn = httplib.HTTPSConnection("secure.authorize.net", 443, ....)
Cette erreur renvoyée "Erreur: [errno13] autorisation refusée" Qu'est-ce que mon adresse source devrait être exactement? Peut-il juste moi "www.mydomain.com" ou s'il devrait être " mydomain.com/mypy.py < / a> "? Est-ce que cela importe-t-il?
La permission refusée "était en fait causée par moi changer ma source_address. Séparer l'URL et le port ne semblaient pas faire de différence.
que veux-tu dire? Maintenant, vous n'obtenez pas le nom gaierror: [errno -2] nom ou service non connu code> plus mais une autre erreur?
Maintenant, j'obtiens une erreur de permission refusée. Je pense que Apache n'a pas la permission d'utiliser ce port ou quelque chose.
@Chris: Pouvez-vous mettre à jour la question avec le code mis à jour et la nouvelle erreur d'erreur complète?
Nous avons effectivement travaillé. Le code était bien. 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é.
GAierRor: [Errno -2] Nom ou service non connu P> blockQuote>
Cette erreur indique souvent une défaillance de votre résolveur DNS.
ping sécurisé.authorize.net code> 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? p>
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 code> 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
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é. P>
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, ....)
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. Code> Si j'imprime la réponse. Se concentrer sur les problèmes de réseau;