[PayPal] PDT ou 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 : [PayPal] PDT ou IPN ?

[RESOLU] Re: [PayPal] PDT ou IPN ?

par Toulousaing » 21 mars 2012, 12:50

Bonjour les amis,

J'ai trouvé pourquoi le code de la NIP ne marche pas.
Paypal a changé l'adresse du serveur SSL de dialogue de validation :

il faut remplacer

https://www.paypal.com/cgi-bin/webscr

par

https://ipnpb.paypal.com/cgi-bin/webscr

fallait-il encore le savoir...

EDIT
J'ai trouvé une 2e différence. Il faut aussi ajouter dans le Header de la requête SSL de validation la ligne suivante :

$header .= "Host: ipnpb.paypal.com:443\r\n";

Donc, le code devient :

Code : Tout sélectionner

$header = "POST /cgi-bin/webscr HTTP/1.0\r\n"; $header .= "Host: ipnpb.paypal.com:443\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
En ce qui concerne la question sur les différences IPN PDT, voici un début d'explication :

Différences entre la notification instantanée de paiement (NIP) et le transfert des données de paiement (TDP)

https://www.paypalobjects.com/WEBSCR-64 ... nGuide.pdf
(Octobre 2006)

La principale fonction du transfert des données de paiement (TDP, en anglais PDT Payment Data Transfer) est [de permettre au serveur du site marchand] d'indiquer le détail des transactions de paiements aux acheteurs lorsque ceux-ci sont redirigés automatiquement vers votre site une fois le paiement terminé. Toutefois, il est possible que vous ne receviez pas une notification pour toutes les transactions, comme pour les transactions en attente, les remboursements ou les annulations.

Pour cette raison et si vous utilisez ces données pour honorer des commandes, PayPal vous recommande fortement d'activer également la notification instantanée de paiement (NIP, en anglais IPN Instant Payment Notification).

La NIP et le TDP renvoient les mêmes données ; toutefois, il existe des différences importantes.

TDP

• Requiert l'activation du renvoi automatique [dans le profil du vendeur].
• Le renvoi automatique inclut un numéro d'identification qui doit être utilisé pour demander à PayPal les détails complets de la transaction.
• Une notification peut être manquée si l'utilisateur ferme le navigateur avant la fin de la redirection.

NIP
• Ne requiert pas l'activation du renvoi automatique.
• A la fin de la procédure de paiement sur le site marchand, PayPal envoie les données NIP de manière asynchrone (c'est-à-dire, en dehors de la procédure de paiement sur le site marchand).
• Des NIP sont également envoyées pour les annulations et les remboursements.
• Le script appelé par la NIP tourne en mode batch, donc aucune interaction n'est possible avec l'acheteur .


Pour en savoir plus : http://www.developpez.net/forums/d11996 ... ost6573269

Tuto : http://www.ddtl.fr/monsite/Tutorial_Pay ... QL_NIP.doc

[PayPal] PDT ou IPN ?

par Toulousaing » 19 mars 2012, 11:34

Bonjour à tous, 8-)

Trop d'info tue l'info, et Google m'a tuer, je ne trouve pas de réponse à ma question dans les ressources PayPal, alors je viens ici.

Soit un site marchand avec un seul article et un bouton ACHETER.
Quand l'acheteur a payé, il revient sur mon site et trigge "accuse_reception.php"
Dans accuse_reception.php, je souhaite contrôler que le paiement a bien été effectué et ensuite je traite la commande (pas de SQL).

(sofar sogoude)

Problème #1 : PDT ou IPN ?

Problème #2 : où trouver un bout de code php qui marche du premier coup, svp ? (si, si, ça existe, j'en ai rencontré...)

Problème #3 : utiliser le bouton automatique de PP (qui marche, j'ai testé) ou un bouton perso (dont je n'ai pas le code) ?

Problème #4 : Le code IPN trouvé sur PayPalTech "ne fonctionne qu'avec l'auto-return disablé"

Problème #5 : mes questions (en français et en anglais) sur les forums Paypal n'ont pas (encore) de réponses après un dimanche complet ! Pourtant, le truc à réaliser est ultra basique, non ?

Merci pour votre aide, les Poteaux,

Didier