Mon Script ipn ne se connecte pas à paypal ( mais sans problème avec sand box )

Lours
Contributeur
Contributeur

Bonjour,

 

Je me suis basé sur Ce message plus bas

 

Je viens de passer des heures sur le net et pa moyen de trouver un moyen de se connecter à paypal lorsque l'IPN appelle ma page php.

 

Voici les tests  :

 

$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Host: www.sandbox.paypal.com:443\r\n";
//$header .= "Host: ipnpb.paypal.com:443\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
//$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);

 

 Tout cela fonctionne sans aucun problème. Mais dès qu'il s'agit de le passé sur paypal... pas moyen d'établit la connexion.

 

$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
//$header .= "Host: www.sandbox.paypal.com:443\r\n";
$header .= "Host: ipnpb.paypal.com:443\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);
//$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);

 

Ne se connecte apparement pas à Paypal

 

Dans le traitement, j'envoi un mail grâce à 

 

if (!$fp) {
    envoi du mail
} else {
    //traitement + envoi de mail selon le cas.
}

 

 

Pour la connexion j'ai aussi essayer : 

ssl://www.paypal.com

 

Sans succès.

 

Voyez-vous une erreur pour la connexion ?

Comment vous connectez vous à paypal ?

 

Login to Me Too
8 RÉPONSES 8

PRSTSCcolonDTL
Contributeur
Contributeur

Bonjour,

 

1° Tuto : http://www.ddtl.fr/monsite/Tutorial_Paypal_php_MySQL_NIP.doc


2° as-tu un message ?

 

3° Met cela pour le savoir :

 

if (!$fp)

// ERREUR HTTP

{

      echo "%NIP-F-SOCKOPEN, HTTP error " . $errno . " " . $errstr;

      exit;

}

else

...

Login to Me Too

Lours
Contributeur
Contributeur

Bonjour,

 

J'ai fini par tester le module via un compte ami sur paypal que je remboursais.

Ca m'as coûté quelque euros ( car paypal rembourse les 3.4% mais garde la commision fixe de 25 cents ), pour faire des tests qui ne sont pas possible sur la plateforme de dévelloppement....

 

L'astuce utilisé était de s'envoyer un mail avec toutes les données et les erreurs quelque soit le cas dans le script php pour localiser et éradiquer le problème.

 

voici le nouveau header fonctionnel :

 

$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Host: ipnpb.paypal.com:443\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);

 

 

Si ca peut aider 🙂

 

@+

Login to Me Too

creamandine
Contributeur
Contributeur

Bonjour,

 

J'ai le même problème.

J'ai mis ce code pour récupérer les données paypal avec le port 443 mais ca ne marche pas :

$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Host: ipnpb.paypal.com:80\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://ipnpb.paypal.com', 30000, $errno, $errstr, 30);

 

Avec le port 80 cette fois j'ai l'erreur 0 et Sucess. On me dit que c'est une erreur d'initialisation du socket mais je ne sais pas ce que c'est.

 

Ca fait des jours et des jorus que je suis dessus. HELP PLEASE !!

Login to Me Too

PRSTSCcolonDTL
Contributeur
Contributeur

Creamandine, tu ne peux pas faire du SSl sur le port 80

cela DOIT marcher sur le port 443

As-tu lu le tuto ?

les gens qui l'ont écrit ont passé BEAUCOUP de temps pour y poster du code qui marche...

Login to Me Too

creamandine
Contributeur
Contributeur

Bonjour,

 

Bien sûr que j'ai lu le tuto !!

Mais en partant du port 443 j'ai l'erreur 2 no such file or directory !

 

Login to Me Too

PRSTSCcolonDTL
Contributeur
Contributeur

peux-tu poster l'intégralité de ton script ici en caviardant les identifiants ?

Login to Me Too

1max2web
Membre
Membre

Bonjour,

Alors moi je voulais dire merci à PRSTSCcolonDTL pour son tuto http://www.ddtl.fr/monsite/Tutorial_Paypal_php_MySQL_NIP.doc car c'est vraiment bien expliqué et pour avoir déjà fait ce genre de chose je sais que cela prend un temps fou !!!

 

Merci aussi à Lours car finalement en exposant son problème en mettant son cose j'ai fini par comprendre le mien Smiley heureux !!!

 

J'avais bien compris que Paypal était passé au SSL et que le protocol pris en charge par fsockopen en PHP est SSL et non HTTPS (oui je sais cela n'existe pas comme protocole, mais il doit bien il y avoir une raison http://fr2.php.net/fsockopen)

 

Bref, javais presque tout puisque le bon code était expliqué et donné ici https://www.paypal-community.com/t5/Installer-PayPal-sur-mon-site/Retour-IPN-paypal-invalide/td-p/37...

à savoir :

 

$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Host: ipnpb.paypal.com:443\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30);

 

Mais je n'avais pas compris que c'était aussi le cas pour la SandBox ...
Et donc c'est que Lours m'a éclairé avec son code :

 

$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Host: www.sandbox.paypal.com:443\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
 

 Voilà je voulais faire un résumé pour ceux qui comme moi serait tombé dans le panneau, car je m'acharnai à continuer à utiliser la SandBox sans SSL et j'avais en retour dans le Header ce genre de résultat :

 

HTTP/1.0 302 Found 
Location: https://www.sandbox.paypal.com 
Server: BigIP 
Connection: close 
Content-Length: 0 

 

Et donc ni VERIFIED ni INVALID, ni quoi que cela soit !

Donc merci à vous 2 et si j'avais une suggestion à faire à PRSTSCcolonDTL ce serait de le préciser clairement dans le Tuto

A +

Login to Me Too

Toulousaing
Contributeur
Contributeur

Merci pour ton "merci" Smiley heureux

(oui, j'ai changé de pseudo)

 

mais bon, quand on lit un tuto, en général, on le LIT.

S'il faut insister sur chaque mot, on n'en finit plus... Smiley tirant la langue

Login to Me Too

Haven't Found your Answer?

It happens. Hit the "Login to Ask the community" button to create a question for the PayPal community.