IPN ne s'execute pas
ZauChoco
Nouveau membre de la communauté
Options
- Marquer comme nouveau
- Ajouter en favori
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Envoyé le
févr.-22-2017
07:56 PM
Bonjour,
Depuis quelque jours j'essaye d'installer paypal sur mon site,apres de nombreux tests je me rends compte qu'apres un achat (Qui se deroule correctement d'apparence -> vers page de succes) l'ipn ne s'execute pas et le compte vendeur ne reçois pas l'argent (Compte acheteur perd son argent)
Formulaire vente:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> <input name="amount" type="hidden" value="<?php echo $prix; ?>" /> <input name="currency_code" type="hidden" value="USD" /> <input name="shipping" type="hidden" value="0.00" /> <input name="tax" type="hidden" value="0.00" /> <input name="return" type="hidden" value="http://***.com/succes.php" /> <input name="cancel_return" type="hidden" value="http://***.com/exit.php" /> <input name="notify_url" type="hidden" value="http://***.com/ipn.php" /> <input name="cmd" type="hidden" value="_xclick" /> <input name="business" type="hidden" value="***@outlook.fr" /> <input name="item_name" type="hidden" value="<?php echo $_SESSION['width'] * $_SESSION['height']; ?> Pixels on MyMillionPixel" /> <input name="no_note" type="hidden" value="1" /> <input name="lc" type="hidden" value="US" /> <input name="bn" type="hidden" value="PP-BuyNowBF" /> <input name="custom" type="hidden" value="id=<?php echo $_SESSION['idu'];?>" /> <input type="image" src="https://www.paypalobjects.com/en_US/FR/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> <img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="2" height="2"> </form>
Fichier IPN:
<?php include 'bdd.php'; $inserthiis = $bdd->prepare("INSERT INTO sellmail(mail, actif) VALUES(?, ?)"); $mail = 1; $actif = 0; $inserthiis->execute(array($mail, $actif)); // prépare la requête de vérification $req = "cmd=_notify-validate"; // ajoute le message IPN au format NVP à la requête de vérification foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $req .= '&$key=$value'; } // définition des headers pour la requête de vérification $header = "POST /cgi-bin/webscr HTTP/1.0rn"; // test $header .= "Host: www.sandbox.paypal.com:443rn"; // production //$header .= "Host: ipnpb.paypal.com:443rn"; $header .= "Content-Type: application/x-www-form-urlencodedrn"; $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; // Ouverture du socket // test $fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30); // production //$fp = fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30); // s'il y a une erreur lors de l'ouverture du socket if (!$fp) { } else { // on post la requête de vérification fputs ($fp, $header . $req); // créé une boucle tant qu'on est pas arrivé à la fin du fichier while (!feof($fp)) { // lit la réponse de paypal $res = fgets ($fp, 1024); // si paypal répond VERIFIED, // tout s'est bien déroulé et on peut procéder à nos traitements if (strcmp ($res, 'VERIFIED') == 0) { $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']; $sommereq = $bdd->prepare("SELECT * FROM buy WHERE ID = ? AND statue = 0"); $sommereq->execute(array($custom)); $somme = $sommereq->fetch(); if($receiver_email == "***@outlook.fr") { if($somme['prix'] == $payment_amount) { $conf = $bdd->prepare('UPDATE buy SET statue = 1 WHERE ID = :ID'); $conf->execute(array( 'ID' => $custom )); } } // type de transaction // $_POST['txn_type'] // mail du compte paypal à qui est destiné le paiement // $_POST['receiver_email'] // montant // $_POST['mc_gross'] // id de la transaction // $_POST['txn_id'] // champ personnalisé // $_POST['custom'] } // si la transaction est invalide else if (strcmp ($res, 'INVALID') == 0) { } } fclose ($fp); }
Une solution s'il vous plait ?
Merci
0 RÉPONSES 0

Haven't Found your Answer?
It happens. Hit the "Login to Ask the community" button to create a question for the PayPal community.