Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1551 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Paypal : Mise en place IPN

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Paypal : Mise en place IPN

n°1775370
Balzard
Posté le 21-08-2008 à 10:38:42  profilanswer
 

Bonjour tout le monde,
 
Je suis actuellement entrain de créer mon site web et j'ai besoin d'y incorporer un système de payement par Paypal.
Il faudrait que le traitement de la commande se fasse au moment du payement.
 
Donc j'ai regarder les IPN, qui renvoi le résultat d'un payement à une page du site.
Donc je pourrai traiter la commande directement et automatiquement via se script.
 
ça fait deux jours que je retourne le site de paypal dans tout les sens, que je télécharge plein de pdf, d'aide et de tuto.
 
Mais j'ai vraiment dur...
 
Voivi mon script actuellement :
 
Le bouton d'achat

Code :
  1. <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
  2. <input type="hidden" name="cmd" value="_xclick">
  3. <input type="hidden" name="business" value="aaaaaaaa@aaaa.com">
  4. <input type="hidden" name="item_name" value="pot de fleur">
  5. <input type="hidden" name="custom" value="<?php echo $_SESSION['Id'];?>">
  6. <input type="hidden" name="amount" value="6.50">
  7. <input type="hidden" name="shipping" value="0.00">
  8. <input type="hidden" name="no_shipping" value="0">
  9. <input type="hidden" name="logo_custom" value="http://www.aaaaaaaaaa.png">
  10. <input type="hidden" name="no_note" value="1">
  11. <input type="hidden" name="currency_code" value="EUR">
  12. <input type="hidden" name="tax" value="0.00">
  13. <input type="hidden" name="lc" value="FR">
  14. <input type="hidden" name="bn" value="PP-BuyNowBF">
  15. <input type="image" src="http://www.aaaaaaaa.png" border="0" name="submit" alt="PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !">
  16. <img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
  17. </form>


 
Le script IPN

Code :
  1. <?php
  2. $pos_relative = '';
  3. include($pos_relative."include/function.php" );
  4. include($pos_relative."include/Connect_DB.php" );
  5. // lire le formulaire provenant du système PayPal et ajouter 'cmd'
  6. $req = 'cmd=_notify-validate';
  7. foreach ($_POST as $key => $value) {
  8. $value = urlencode(stripslashes($value));
  9. $req .= "&$key=$value";
  10. }
  11. // renvoyer au système PayPal pour validation
  12. $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
  13. $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
  14. $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
  15. $fp = fsockopen ('ssl://www.paypal.com', 80, $errno, $errstr, 30);
  16. // affecter les variables du formulaire aux variables locales
  17. $item_name = $_POST['item_name'];
  18. $item_number = $_POST['item_number'];
  19. $payment_status = $_POST['payment_status'];
  20. $payment_amount = $_POST['mc_gross'];
  21. $payment_currency = $_POST['mc_currency'];
  22. $txn_id = $_POST['txn_id'];
  23. $receiver_email = $_POST['receiver_email'];
  24. $payer_email = $_POST['payer_email'];
  25. $idmembre = intval($_POST['custom']);
  26. if (!$fp)
  27. {
  28. // ERREUR HTTP
  29. }
  30. else
  31. {
  32. fputs ($fp, $header . $req);
  33. while (!feof($fp))
  34. {
  35.  $res = fgets ($fp, 1024);
  36.  if (strcmp ($res, "VERIFIED" ) == 0)
  37.  {
  38.   if ( $payment_status == "Completed" AND $receiver_email = "aaaaaa@aaaaaa.com" AND $payment_currency = "EUR" )
  39.   {
  40.    $dejavalide = mysql_result(mysql_query("SELECT COUNT(*) FROM Membre_Log WHERE (Code = 'AM3' OR Code = 'AM4') AND Commentaire = '".$txn_id."'" ), 0);
  41.    if ($dejavalide == 0)
  42.    {
  43.     if ( $payment_amount == 6.5 )
  44.     {
  45.      Log_membre($idmembre, 1, 'AM3', $txn_id, 5)
  46.      mysql_query("UPDATE Membre SET Credit = Credit + 5 WHERE Id = $idmembre" );
  47.     }
  48.     if ( $payment_amount == 12 )
  49.     {
  50.      Log_membre($idmembre, 1, 'AM3', $txn_id, 10)
  51.      mysql_query("UPDATE Membre SET Credit = Credit + 10 WHERE Id = $idmembre" );
  52.     }
  53.     if ( $payment_amount == 28 )
  54.     {
  55.      Log_membre($idmembre, 1, 'AM3', $txn_id, 25)
  56.      mysql_query("UPDATE Membre SET Credit = Credit + 25 WHERE Id = $idmembre" );
  57.     }
  58.    }
  59.    else
  60.    {
  61.     Log_membre($idmembre, 1, 'AM4', $txn_id, $payment_amount)
  62.    }
  63.   }
  64.   else
  65.   {
  66.    Log_membre($idmembre, 1, 'AM4', $txn_id, $payment_amount)
  67.   }
  68.  }
  69.  else if (strcmp ($res, "INVALID" ) == 0) {
  70.   // consigner pour étude manuelle
  71.   Log_membre($idmembre, 1, 'AM4', $txn_id, $payment_amount)
  72.  }
  73. }
  74. fclose ($fp);
  75. }
  76. mysql_close();
  77. ?>


 
Si quelqu'un pouvait y jeter un petit coup d'oeil et me dire ce qu'il en pense, ce serait vraiment super sympa :)
 
Merci d'avance et bonne journée ;)
 
Balzard.

mood
Publicité
Posté le 21-08-2008 à 10:38:42  profilanswer
 

n°1991060
Pascal le ​nain
Posté le 06-05-2010 à 22:07:42  profilanswer
 

Salut Balzard, désolé de déterrer le topic, as-tu trouvé ce que tu cherchais ?
Je galère moi aussi sur les échanges IPN.
Si tu as fini par réussir, peux-tu m'envoyer ton code ?
 
Merci d'avance ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Paypal : Mise en place IPN

 

Sujets relatifs
Mise en ligne de site webProblème de mise en place URL rewriting
Mise à jour cube multidimensionnelleProbleme de communication PHP/JS 'Edit in place'
Mise sous forme de liens des résultats d'une requête en phpmise en page dans iframe
Mise en page 2 ou 3 colonnesProbleme Mise en page HTML et CSS
Problème de mise en cache d'actions 
Plus de sujets relatifs à : Paypal : Mise en place IPN


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR