bonjour,

voila je suis bloquer dans mon code pour paiment paypal:
j'ai l'erreur "Statut de paiement: Echec" donc il n'arrive pas a rentrer dans la boucle.

je ne suis plus quoi faire, c est tres important et je suis bloquer dessus depuis au moins 3 jours.
quand je fait if(isset($_POST)){...} il rentre bien dedans.

voila la page d'appel:

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
 
<?php
 
$nbArticles=count($_SESSION['panier']['idProduit']);
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">';
  for ($i=0 ;$i < $nbArticles ; $i++)
   {
 

$index = $i +1;
	

<input type="text" name="item_name_'.$index.'" value="'.htmlspecialchars($_SESSION['panier']['libelleProduit'][$i]).'">

//<input type="text" name="poids_'.$index.'" value="'.htmlspecialchars($_SESSION['poids'][$i]).'">

<input type="text" name="amount_'. $index . '" value="'.htmlspecialchars($_SESSION['panier']['prixProduit'][$i]).'">

<input type="text" name="quantity_'. $index .'" value="'.htmlspecialchars($_SESSION['panier']['qteProduit'][$i]).'">


   }

<input type="text" name="amount" value="'.MontantGlobal().'" />
<input name="currency_code" type="text" value="EUR" />
<input name="shipping" type="text" value="0.00" />
<input name="tax" type="text" value="0.00" />
<input name="return" type="text" value="'.RACINE.'/modules/catalogue/validationPaiement.php" />
<input name="cancel_return" type="text" value="'.RACINE.'/modules/catalogue/paiementAnnule.php" />
<input name="notify_url" type="text" value="'.RACINE.'/modules/catalogue/validationPaiement.php" />
<input type="text" name="cmd" value="_cart">
<input type="text" name="upload" value="1">
<input name="business" type="text" value="my.bab_1324302424_biz@gmail.com" />
<input name="no_note" type="text" value="1" />
<input name="lc" type="text" value="FR" />
<input name="bn" type="text" value="PP-BuyNowBF" />
<input name="custom" type="text" value="'.$_SESSION['id'].'" />




<input alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée" name="submit" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynow_LG.gif" type="image" /><img src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" border="0" alt="" width="1" height="1" />
</form>
';
 
//header("Location: ".$serveur_paypal.$liste_param_paypal['TOKEN']);
 
 
 
?>
voici la page validationPaiement.php:
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 
<?php
 
 
*/
//lire le formulaire provenant du système PayPal et ajouter 'cmd'
$req = 'cmd=_notify-validate';
 
foreach ($_POST as $key => $value) {
 
	$value = urlencode(stripslashes($value));
	$req .= "&$key=$value";
}
// renvoyer au système PayPal pour validation
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30);
/**commande**/
/** Le montant de la transaction**/
$payment_amount = $_POST['amount'];
/**nom command ici j 'ai mit le numero**/
$item_name = $_POST['item_name1'];
/**nombre d'article**/
$item_number = $_POST['item_number'];
/****/
$payment_status = $_POST['payment_status'];
/**Choix de la monnaie**/
$payment_currency = $_POST['mc_currency'];
/**Taxe TVA**/
$txn_id = $_POST['txn_id'];
/**Identifiant du membre**/
$id_user = $_POST['custom'];
/**Identifiant du membre**/
$receiver_email = $_POST['email'];
 
 
 
 
 
if (!$fp) {
 
	// ERREUR HTTP
} else {
 
	fputs ($fp, $header . $req);
	while (!feof($fp)) {
		$res = fgets ($fp, 1024);
		if (strcmp ($res, "VERIFIED") == 0) {
			// transaction valide
		}
		else if (strcmp ($res, "INVALID") == 0) {
			// Transaction invalide               
		}
	}
	fclose ($fp);
}
// transaction valide
 
 
// vérifier que payment_status a la valeur Completed
if ($payment_status == "Completed") {
 
	// vérifier que txn_id n'a pas été précédemment traité: Créez une fonction qui va interroger votre base de données
	if (VerifIXNID($txn_id) == 0) {
		// vérifier que receiver_email est votre adresse email PayPal principale
		if ( "my.bab_1324302424_biz@gmail.com" == $receiver_email) {
 
			// vérifier que payment_amount et payment_currency sont corrects
			// traiter le paiement
 
 
 
 
 
		}
		else {
			// Mauvaise adresse email paypal
			echo'Mauvaise adresse email paypal';
		}
	}
	else {
		// ID de transaction déjà utilisé
		echo'ID de transaction déjà utilisé';
	}
}
else {
	// Statut de paiement: Echec
	echo'Statut de paiement: Echec';
}
/*
include('../../config/base.php');*/
?>
merci.