Exècution IPN paypal
ZauChoco
-
ZauChoco -
ZauChoco -
Bonsoir,
J' installe en ce moment un IPN sur mon site web pour faire des paiement:
Mais problème: Tout est bon (Normalement) mais mon code dans le ipn ne s'execute pas.
J'ai tout tenté mais la je seche !
Pouvez vous trouver ou est mon erreur svp:
ipn.php:
Formulaire avant paiement paypal:
Merci :)
J' installe en ce moment un IPN sur mon site web pour faire des paiement:
Mais problème: Tout est bon (Normalement) mais mon code dans le ipn ne s'execute pas.
J'ai tout tenté mais la je seche !
Pouvez vous trouver ou est mon erreur svp:
ipn.php:
<?php // 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.[/sites/details/paypal.com 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) { // on s'envoie un mail pour être informé de l'erreur $msg = 'Erreur de socket, l\'url n\'a pas pu être ouverte'; mail('***@***', 'erreur socket', $msg); } 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']; include 'bdd.php'; $sommereq = $bdd->prepare("SELECT * FROM buy WHERE ID = ? AND statue = 0"); $sommereq->execute(array($custom['id'])); $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['id'] )); } } // 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) { // on s'envoie un mail pour être informé de l'erreur $msg = 'Message de l\'IPN : '.$res; mail('***@***', 'erreur IPN', $msg); } } fclose ($fp); }
Formulaire avant paiement paypal:
<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=""quot;"quot;"quot;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=""quot;"quot;"quot;https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="2" height="2"> </form>
Merci :)
A voir également:
- Exècution IPN paypal
- Paypal - Guide
- Créer un compte paypal - Guide
- Paypal europe sarl et cie sca - Accueil - Guide arnaque
- Piratage paypal - Accueil - Guide piratage
- Supprimer compte paypal - Guide