probleme IPN paypal

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme IPN paypal

Re: probleme IPN paypal

par titophe66 » 10 août 2012, 02:13

Bonjour ,
Le post date un peu mais j'ai trouvé réponse a mon problème ici https://www.x.com/developers/PayPal/doc ... ple/216623 alors si ca peu aider .

Re: probleme IPN paypal

par LeParrain735 » 20 déc. 2011, 13:04

et ?
tu en attends quoi de ton script ?
Un envoi par email ?
je vois des headerMail et textMail mais aucune fonction d'envoi de mail :p
ton update bdd fonctionne ou pas ?

faut remplir tes else hein
et ton update bdd tu devrait le mettre là

if ( "[email protected]" == $receiver_email) {
// vérifier que payment_amount et payment_currency sont corrects
// traiter le paiement
// LA !
}

probleme IPN paypal

par squallblanc » 24 nov. 2011, 22:57

salut à tous!
Je me retrouve avec un problème qui me casse le crane :-k depuis le début de l'après midi avec l'ipn paypal. Après parcouru le net dans tous les sens je ne trouve pas la solution mon soucis. En faite tous fonction jusqu'au paiement mais le script IPN ne me retourne pas les info sur la commandes.

Voilas mon script ipn :
<?php
$notify_email = "[email protected]"; 
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}

// post back to PayPal system to validate
$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.paypal.com', 80, $errno, $errstr, 30);
$fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30);

// assign posted variables to local variables
$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'];
$custom = $_POST['custom'];

$headerMail= "Content-Type:text/html;charset=utf8\n";//permet d'envoyer les message au format html
$headerMail.= "Content-Transfer-Encoding: 8bit\n";//permet d'envoyer les message au format html
$headerMail.="From: me";//pour répondre au message
 
//on prépare le texte de l'email
$textMail="
	<strong>Détail de la commande</strong><br />
	Commande numéro:".$item_number."<br />
	prix: ".$payment_amount." &euro;<br />
	siren: ".$custom."
";

if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
               // 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 ( "[email protected]" == $receiver_email) {
                            // vérifier que payment_amount et payment_currency sont corrects
                            // traiter le paiement
                         }
			  else {
				// Mauvaise adresse email paypal
			  }
			}
			else {
				// ID de transaction déjà utilisé
					}
			}
		  else {
		        	// Statut de paiement: Echec
		  }
// si le payment est accepter  traitement de l'information
include("../php/connexion_bd.php"); 
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');

$sql = 'UPDATE adherent SET validation = 1 WHERE siren = '.$custom.'';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.''.mysql_error());  
     
}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
}
}
fclose ($fp);
}
?>
Et mon bouton paypal :
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type='hidden' value="90" name="amount" />
<input name="currency_code" type="hidden" value="EUR" />
<input name="return" type="hidden" value="http://dev.monsite.fr/php/recap.php" />
<input name="cancel_return" type="hidden" value="http://dev.monsite.fr/php/annule.php" />
<input name="notify_url" type="hidden" value="http://dev.monsite.fr/php/IPN.php" />
<input name="cmd" type="hidden" value="_xclick" />
<input name="business" type="hidden" value="[email protected]" />
<input name="item_name" type="hidden" value="Site ecommerce" />
<input name="no_note" type="hidden" value="1" />
<input name="lc" type="hidden" value="FR" />
<input name="bn" type="hidden" value="PP-BuyNowBF" />
<input name="custom" type="hidden" value="<?php echo $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>
Voilas je pense tout vous avoir dis... Si vous avez une soluce.
PS: aprés avoir tester mon script plusieur foi j'ai supprimer le fichier ipn.php et la visiblement le fichier n'est pas utiliser car il y a aucune erreur lors de la transaction.

Merci