Notification de paiement -- Paypal IPN

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 : Notification de paiement -- Paypal IPN

Re: Notification de paiement -- Paypal IPN

par stivity » 18 avr. 2011, 14:51

Salut à tous je vois que ça fait un bail que vous avez parlé de ce sujet!! mais moi aussi je comprends le code et je vois que c'est pour un seul produit
comment on fait si on a plusieurs produits!? pour moi c'est vremen important car je veux enregistrer la commande après le paiement donc lors du traitement du code qui fait l'IPN car je ne veux pas que ma base de donnée soit saturée par des commandes non payées!!
Et j'ai aussi vu qu'il est possible de modifier le formulaire de paypal ; euuh est ce qu'il est possible de vérifier le total des prix des produits envoyé par paypal avec celui qui est en session mais je pense qu'il peut se perder la session pendant qu'il est entrain de payer :(

Si vous avez une réponse SVP donne la moi car ça fait 3jours que je cherche la solution

par hakazizi » 29 juil. 2008, 20:12

tu remplie le champs
je vais pas te mettre tous le formilaire mais avec sa tu devrais arriver a t'en sortir

Code : Tout sélectionner

<input type="hidden" name="item_number" value="n°_facture">
pour la verif des prix pense a multiplier par un ce que t'envoie payal sinon tu aura des surprises...

par AB » 29 juil. 2008, 18:07

Je connais pas encore paypal mais je m'y intéresse de loin car j'aurai certainement à l'utiliser un jour ou l'autre.
Je viens de regarder rapidement dans la doc... j'suis une bille en anglais mais
"item_number : Passthrough variable for you to track purchases or donations, passed back to you at payment completion." ne serait-il pas un élément de réponse ?
Si c'est pas ça tu auras peut-être la réponse dans cette page
https://www.paypal.com/IntegrationCente ... y-now.html

par Invité » 29 juil. 2008, 13:56

Donc tu veux dire que j'ai pas a me casser la têye à vérifier chacun des produits mais seulement si le montant total correspond bien a celui que jai envoyé a paypal?

Autre question...

Dans mon formulaire qui envoie les donnée à paypal au départ est-ce que je peux y envoyer aussi le numéro de commande de ma bd afuin que paypal me le retour avec les données IPN car sinon comment associer les données retourné par paypal à la commande dans ma bd?

Merci!

par hakazizi » 29 juil. 2008, 12:25

tous le travail doit etre fait en amont et a la fin tu verifie si le prix payer correspond au prix que tu as mis c'est amplement suffisant pour verifier. :wink:

Notification de paiement -- Paypal IPN

par stefane321 » 29 juil. 2008, 05:22

J'ai bien lu les tuto et exemple de code pour la notification de paiement paypal ipn.

Je comprend son fonctionnement.

Mais se que je ne comprend c'est les exemple que code... à moins que je les comprennent mal il traite une commande qui a un seul produit.

Alors, comment traiter une commande qui a plusieurs produits?

Voici l'exemple de code fournie par Paypal;
// lire le formulaire provenant du système PayPal et ajouter 'cmd'
$req = 'cmd=_notify-validate';

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

// renvoyer au système PayPal pour validation
$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 ('ssl://www.paypal.com', 80, $errno, $errstr, 30);

// affecter les variables du formulaire aux variables locales
$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'];

if (!$fp) {
// ERREUR HTTP
} 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
// vérifier que txn_id n'a pas été précédemment traité
// vérifier que receiver_email est votre adresse email PayPal principale
// vérifier que payment_amount et payment_currency sont corrects
// traiter le paiement
}
else if (strcmp ($res, "INVALID") == 0) {
// consigner pour étude manuelle
}
}
fclose ($fp);
}
?>