Forum d'entraide PHPFrance

Venez poser vos questions PHP, MySQL, HTML, CSS, Javascript, Gestion de serveurs à la communauté PHPfrance

Vers le contenu

» Masquer les résultats de la recherche

Recherche dynamique PHPfrance

  1. Effectuez une recherche, les résultats s'afficheront dynamiquement ici.

probleme IPN paypal

Pour les initiés, les confirmés, les experts, les gourous... voire plus.

probleme IPN paypal

Messagepar 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 :
Syntaxe: [ Télécharger ] [ Masquer ]
Code php
<?php
$notify_email = "contact@monsite.fr";
// 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 ( "contac_1322151745_biz@cliquerctrouver.fr" == $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 :
Syntaxe: [ Télécharger ] [ Masquer ]
Code html
<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="contac_1322151745_biz@monsite.fr" />
<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
Zeldesk - Suivi de maintenance web
Développeur de Zeldesk solution de gestion des interventions de maintenance sur site web.
squallblanc
Ma première boucle
 
Messages: 79
Inscription: 22 Oct 2011, 21:49

Publicité

Re: probleme IPN paypal

Messagepar 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 ( "contac_1322151745_biz@cliquerctrouver.fr" == $receiver_email) {
// vérifier que payment_amount et payment_currency sont corrects
// traiter le paiement
// LA !
}
LeParrain735
 

Re: probleme IPN paypal

Messagepar titophe66 10 Aoû 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 .
titophe66
 


Retourner vers PHP avancé

Qui est en ligne

Utilisateurs parcourant ce forum: moogli et 5 invités

  • Publicité