Paypal et IPN.

Likeun
Invité n'ayant pas de compte PHPfrance

09 oct. 2013, 12:13

Bonjour,

je rencontre actuellement un problème avec PAYPAL et l'IPN.

En résumé :
- Mes comptes sandbox sont ok.
- l'IPN est bien envoyé sur mon site
- l'authentification IPN est ok : HTTP/1.1 200 OK

Le problème viens lors de la récupération du "VERIFIED".

Code : Tout sélectionner

$header = "POST /cgi-bin/webscr HTTP/1.1\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Host: www.sandbox.paypal.com\r\n"; $header .= "Connection: close\r\n"; $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; $fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30); if (!$fp) { } else { fputs ($fp, $header . $req); while (!feof($fp)) { $res = fgets ($fp, 1024); if (strcmp($res,"VERIFIED")==0) { mon code... }
Ce que j'ai testé, c'est avant de rentrer dans mon if(strcmp($res,"VERIFIED")==0) , c'est de m'envoyer par mail le contenu du $res.

Je récupère bien VERIFIED, par contre quand je récupéere la valeur de la fonction strcmp, il me sort 2...et non 0.

Avez vous une solution pour moi ?

Merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 oct. 2013, 13:12

Salut,

Tu n'aurais pas aute chose dans ta chaîne ?
Genre des caractèrez blanc ?
Est tu sur d'avoir toutes la chaîne ?
Tu peux l'afficher avec des | autour ou utiliser var_dump ;)

@+
Il en faut peu pour être heureux ......

Likeun
Invité n'ayant pas de compte PHPfrance

09 oct. 2013, 13:16

Ah oui, c'est pas bête le coup des | autours de la variable $res.

Je teste ça de suite et je vous le dis.

Merci de votre réponse en tout cas .... car ça fait quelques jours que je suis dessus et je n'y arrive pas !

Encore merci

Likeun
Invité n'ayant pas de compte PHPfrance

09 oct. 2013, 13:27

|VERIFIED | : |2|
var_dump :

Effectivement, il y a un espace après le VERIFIED , bien joué !

Je vais essayé de faire le strcmp avec un espace.

Par contre bisare que le var_dump, m'affiche rien sur la variable ...

Likeun
Invité n'ayant pas de compte PHPfrance

09 oct. 2013, 13:44

|VERIFIED | : |-1|
var_dump :

Bon bah avec l'espace, du coup j'ai plus 2 mais -1...
<?php
$detailcommande = explode("|", $custom);
if (!$fp) {
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
$destinataire = "[email protected]"; // Pour plusieurs destinataires, les séparer par une virgule
$expediteur = "[email protected]";
$sujet = "ClickWeb - pb http";
$entete = "From: $expediteur \n";
$entete .= "Reply-to: $expediteur \n";
//$entete .= "Cc: [email protected] \n";
//$entete .= "Bcc: [email protected] \n";
$entete .= "X-Priority: 1 \n";
$entete .= "MIME-Version: 1.0 \n";
$entete .= "Content-Type: multipart/mixed; boundary=\"$delimiteur\" \n"; // Déclaration du type du mail et du délimiteur
$entete .= " \n";
$message = "--$delimiteur \n"; // Séparation du bloc "entete" et du bloc "message" par notre délimiteur
$message .= "Content-Type: text/html; charset=\"iso-8859-1\" \n"; // Déclaration du type du message ainsi que la charte de codage
$message .= "Content-Transfer-Encoding:8bit\n"; // Déclaration du type de codage
$message .= "\n";
$test = strcmp($res,"VERIFIED ");
$message .= "|".$res."| : |".$test."|<br />";
$message .= "var_dump : ".var_dump($res);
$message .= "\n";
$message .= "--$delimiteur"; 
mail($destinataire, $sujet, $message, $entete);
if (strcmp($res,"VERIFIED ")==0) 
{

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

11 oct. 2013, 19:21

pourquoi tu t'emmerde avec strcmp ?

c'est du texte que tu récupère.

un simple if( strtolower(trim($res)) == 'verified') devrait faire l'affaire ?

sinon var_dump($res) juste sous le $res = fgets ($fp, 1024); devrait t'indiquer ce que tu veux.

@+
Il en faut peu pour être heureux ......