IPN vs PDT dans Paypal


99

J'ai du mal à choisir entre la notification instantanée de paiement (IPN) de PayPal et le transfert de données de paiement (PDT).

Fondamentalement, les utilisateurs achètent un produit unique sur mon site, paient sur PayPal et reviennent sur mon site. Je comprends comment IPN fonctionne mais je vois maintenant que je pourrais peut-être déclencher plus facilement les différentes actions qui ont lieu après un achat réussi avec PDT, car les données sont renvoyées sur-le-champ (au lieu d'avoir besoin d'un auditeur séparé) .

Cependant, la documentation PDT de PayPal contient cette ligne cryptique: "PDT n'est pas destiné à être utilisé avec des transactions par carte de crédit ou Express Checkout." ... mais je ne trouve rien de plus sur le sujet.

  1. Les cartes de crédit ne sont-elles VRAIMENT pas destinées à être utilisées avec PDT? Je voudrais plus qu'une phrase.

  2. Cela signifie-t-il qu'un utilisateur doit avoir / créer un compte PayPal pour payer?

  3. Cela signifie-t-il que si je veux permettre aux utilisateurs de payer avec leurs comptes PayPal ET / OU avec des cartes de crédit directement, je dois mettre en œuvre IPN?

Est-ce que quelqu'un qui est passé par là pourrait bien faire la lumière?


J'ai trouvé une page Web qui explique vraiment mieux cela. [PayPal PDT et IPN: comment ça marche?] [1] [1]: webmasters.stackexchange.com/questions/21634/…
Ananize Scott

En ce qui concerne la question 2, il existe un PayPal Account Optionalparamètre sous My selling preferences > Website preferenceslequel vous pouvez activer pour ne pas forcer vos clients à créer / avoir un compte PayPal, c'est à dire. payer par carte de crédit / débit.
kaiyaq

Réponses:


112

Les API pour PDT et IPN sont similaires. La principale différence réside dans la réception de la notification. Pour cette raison, je recommanderais de mettre en œuvre les deux.

  • Avec PDT, vous recevez la notification instantanément et pouvez effectuer tout traitement supplémentaire requis et montrer à l'utilisateur une page de confirmation.
  • Avec IPN, vous êtes assuré d'être informé que le paiement a été reçu même si l'ordinateur de l'utilisateur explose avant de pouvoir vous envoyer le PDT.

Mettez en œuvre les deux et obtenez le meilleur des deux mondes. Mais si vous n'en faites qu'un, IPN est le plus fiable.

Un problème: si vous mettez en œuvre les deux, il est possible que vos paiements soient traités deux fois. Veillez à ce que cela ne se produise pas. L'application que j'ai écrite gère le PDT et l'IPN presque de la même manière (la partie backend est la même) et ce code acquiert un verrou par utilisateur Web dans la base de données, de sorte que si le même utilisateur essaie de soumettre exactement le même paiement plusieurs fois ne peut être traité qu'une seule fois. Une fois traité, le résultat de ce processus est réutilisé pour toute tentative ultérieure de le traiter.

Edit Encore une chose: IPN contient plus d'informations que PDT. Il existe de nombreux messages différents que vous pouvez recevoir d'IPN, tels que la notification de rétrofacturation, etc., et vous devriez donc vraiment l'implémenter.


Le système PDT de PayPal envoie des confirmations de commande aux sites marchands qui utilisent PayPal Payments Standard et leur permet d'authentifier ces informations. Ces sites peuvent ensuite afficher ces données localement dans une page de «confirmation de commande».

Quand utiliser PDT?

IPN offre les mêmes capacités décrites ci-dessus. Alors, quand devriez-vous choisir PDT au lieu d'IPN?

Avec PDT, votre site est immédiatement averti lorsqu'un client effectue un paiement. Avec IPN, cependant, il y a un décalage important entre le moment où un client effectue le paiement et le moment où votre site reçoit la notification de cet événement.

Alors, utilisez PDT si votre site inclut une fonctionnalité qui nécessite une notification immédiate de paiement.

Par exemple, considérons un magasin de musique numérique. Avec PDT, ce magasin peut permettre aux clients de télécharger leurs achats immédiatement puisque PDT envoie immédiatement les confirmations de commande. Avec IPN, une telle exécution immédiate des commandes n'est pas possible.

Avantages de l'IPN

PDT a une faiblesse majeure: il envoie des confirmations de commande une et une seule fois. Par conséquent, lorsque PDT envoie une confirmation, votre site doit être en cours d'exécution; sinon, il ne recevra jamais le message.

Avec IPN, en revanche, la livraison des confirmations de commande est pratiquement garantie puisque IPN renvoie une confirmation jusqu'à ce que votre site en accuse réception. Pour cette raison, PayPal vous recommande d'implémenter IPN plutôt que PDT.

Un autre avantage d'IPN est qu'il envoie de nombreux types de notifications, tandis que PDT n'envoie que des confirmations de commande. Ainsi, en utilisant IPN, votre site peut recevoir, par exemple, des notifications de rétrofacturation ainsi que des confirmations de commande. Remarque: si votre site doit être immédiatement informé des paiements, vous pouvez implémenter à la fois IPN et PDT. Cependant, si vous le faites, votre site recevra deux confirmations de commande pour chaque vente. Par conséquent, vous devez faire attention à prendre des mesures (par exemple, expédier un produit) sur une seule copie d'un message de confirmation donné.

Documentation ici


2
Merci, je vois. Donc, en gros, liez les mises à jour de la base de données à IPN (car il sera toujours traité) et liez les confirmations des utilisateurs uniquement à PDT (comme vérifier si le paiement a été traité par IPN sur une page en attente, par exemple) ....?
Tom

1
+1 pour implémenter à la fois IPN et PDT, nous l'avons fait et cela fonctionne bien.
Mark Redman

3
@Tom: Ma mise en œuvre est la suivante: Lorsqu'un PDT ou un IPN arrive, lisez les paramètres et essayez de traiter le paiement. Le processeur A) bloque les autres traitements simultanés (pour cet utilisateur) et B) vérifie s'il a déjà été traité. Une fois le traitement terminé, avec IPN vous avez terminé, avec PDT vous montrez à l'utilisateur une page de confirmation ou une page de reçu ou autre. Le côté PDT et le côté IPN peuvent fonctionner correctement si l'autre côté est en bas, mais vous obtenez une bonne fiabilité en ayant les deux. Un pourcentage assez élevé d'utilisateurs ne cliquent pas avant l'arrivée de l'IPN.
Mr. Shiny and New 安 宇

8
Cette réponse ne répond pas aux questions n ° 1, n ° 2 ou n ° 3 du PO, mais elle est acceptée?
Clint Pachl

2
IPN prend jusqu'à 4 jours pour répondre ... ça craint
Toskan

1

Re 1. PDT est destiné à être utilisé avec la fonction de retour automatique pour les paiements sur site Web. Le retour automatique redirige vers le site PDT après avoir payé de l'argent au vendeur. Malheureusement, il n'est pas possible d'utiliser cette fonctionnalité avec le compte PayPal en option - utilisé pour activer le paiement par carte de crédit. Voici la note de PayPal: `` Si vous avez activé le retour automatique et avez choisi d'activer le compte PayPal facultatif pour les nouveaux utilisateurs, un nouvel utilisateur ne sera pas automatiquement redirigé vers votre site Web, mais aura la possibilité de revenir. '' . L'utilisateur aura la possibilité de revenir sur votre site (étape PDT) ou de rester sur le site PayPal. Pour résumer lors du paiement par carte de crédit, l'utilisateur peut ignorer l'étape PDT si l'utilisateur ne clique pas sur «retourner au lien de magasin».

Re 2. C'est à vous de décider quelles sont les options de paiement que vous souhaitez autoriser. Si vous souhaitez autoriser le paiement sans compte PayPal, vous pouvez activer le compte facultatif . Si vous souhaitez autoriser uniquement les utilisateurs disposant de comptes PayPal, désactivez cette fonctionnalité. Il pourrait y avoir plus d'options.

Re 3. Dans votre cas, vous devez déclencher une action après l'achat réussi. La manière recommandée serait de mettre en œuvre IPN. PDT ne fonctionne pas dans tous les cas et ne garantit pas la livraison des messages. Voici le lien vers la documentation couvrant ce sujet PDT vs IPN .


0

C'est une vieille question, mais ma réponse simple serait - Pourquoi ne pas utiliser à la fois PDT et IPN? Ils fonctionneront bien pour les transactions par carte.

PDT peut fournir l'état immédiat de la transaction à votre site Web, où vous pouvez vérifier rapidement l'état de réussite ou d'échec du paiement et fournir à l'utilisateur le message approprié.

En attendant, vous pouvez attendre la vérification complète d'IPN en arrière-plan. Une fois reçu, vous pouvez l'utiliser pour mettre à jour davantage votre base de données et traiter la commande.

Vous pouvez suivre ce guide étape par étape que j'ai trouvé très clair et utile - et il est toujours valable en 2018.

https://www.codexworld.com/paypal-standard-payment-gateway-integration-php/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.