Bonjour a tous,

Cela fait trois jours que j'eassai de trouver pourquoi je n'arriva pas a obtenir une reponse du serveur SANDBOX de Paypal.

Un peu de code...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php 
$IdFichier = fopen("logs_.txt", "w");
fputs ($IdFichier, "Début de fichier log\n");
//permet de traiter le retour ipn de paypal
$email_account = "cocote_1395659534_biz@titi.com";
$req = 'cmd=_notify-validate';
 fputs ($IdFichier, "------------------------------------------------------------\n");
foreach ($_POST as $key => $value) {
    $value = urlencode(stripslashes($value));
	fputs ($IdFichier, "Key : ".$key." Req : ".$value."\n\n");
    $req .= "&$key=$value";
}
fputs ($IdFichier, "\n\n------------------------------------------------------------\n");
 
$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);
fputs ($IdFichier, "\n\n------------------------------------------------------------\n");
$chaine="Erreur :".$errno." - errstr : ".$errstr."\n";
fputs ($IdFichier, $chaine);
fputs ($IdFichier, "\n\n------------------------------------------------------------\n"); 
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
parse_str($_POST['var'],$var);
$data=serialize($_POST);
$chaine="status Paiement : ".$payment_status."\n";
$chaine=$chaine."email_account : ".$email_account."\n";;
$chaine=$chaine."receiver_email : ".$receiver_email."\n";;
$chaine=$chaine.$data."\n\n";
fputs ($IdFichier, $chaine);
if (!$fp) {
fputs ($IdFichier, "socket a false\n");
 
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
    $res = fgets ($fp, 1024);
	fputs ($IdFichier, "On est dedans...\n");
	fputs ($IdFichier, $res);
    if (strcmp ($res, "VERIFIED") == 0) {
		fputs ($IdFichier, "VERIFIED...\n");
        // vérifier que payment_status a la valeur Completed
        if ( $payment_status == "Completed") {
               if ( $email_account == $receiver_email) {
				   fputs ($IdFichier, "email_account == receiver_email...\n");
                /**
                 * C'EST LA QUE TOUT SE PASSE
                 * PS : tjrs penser a vérifier la somme !!
                 */
                /**
                 * FIN CODE
                 */
               }
        }
        else {
                // Statut de paiement: Echec
        }
        exit();
   }
    else if (strcmp ($res, "INVALID") == 0) {
		// Transaction invalide
		fputs ($IdFichier, "Transaction invalide...\n");
    }
}
fclose ($fp);
fclose($IdFichier);
}
 
?>
$fp est a false et $errno =0 , $errstr="";

Quelqu'un a une petite idée ?

Merci pour votre aide