web-dev-qa-db-fra.com

IPN vs PDT dans Paypal

Je ne parviens pas à choisir entre la notification de paiement instantanée (IPN) et le transfert de données de paiement (PDT) de Paypal.

En gros, les utilisateurs achètent un produit unique sur mon site, paient sur Paypal et reviennent sur mon site. Je comprends le fonctionnement d'IPN, 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 de nécessiter un auditeur séparé). .

Cependant, la documentation PDT de Paypal contient cette ligne cryptée: "Le PDT n'est pas destiné à être utilisé avec des transactions par carte de crédit ou Paiement express." ... mais je ne peux rien trouver de plus sur le sujet.

  1. Les cartes de crédit ne sont-elles pas VRAIMENT 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. Est-ce que cela signifie que si je veux permettre aux utilisateurs de payer directement avec leurs comptes Paypal ET/OU avec leurs cartes de crédit, je dois mettre en œuvre IPN?

Est-ce que quelqu'un qui a traversé cela a gentiment fait la lumière?

94
Tom

Les API pour PDT et IPN sont similaires. La principale différence est lorsque vous recevez la notification. Pour cette raison, je recommanderais de mettre en œuvre les deux.

  • Avec PDT, vous recevez la notification instantanément, pouvez effectuer tout traitement supplémentaire requis et affichez une page de confirmation à l'utilisateur.
  • Avec IPN, vous êtes assuré d'être averti de la réception du paiement, 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'une, IPN est la solution la plus fiable.

Un problème: si vous appliquez 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 traite le PDT et le IPN de manière presque identique (la partie principale est la même) et ce code acquiert un verrou par utilisateur Web dans la base de données. Ainsi, si le même utilisateur tente de soumettre le même paiement plusieurs fois, il ne peut être traité qu'une fois. Une fois traité, le résultat de ce processus est réutilisé pour toute tentative ultérieure de le traiter.

Edit Une dernière 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 devez donc vraiment le mettre en œuvre.


Le système PDT de Paypal envoie les confirmations de commande aux sites marchands utilisant Paypal Payments Standard et leur permet d'authentifier ces informations. Ces sites peuvent ensuite afficher ces données localement dans une page "confirmation de commande".

Quand utiliser PDT?

IPN fournit les mêmes fonctionnalités que celles décrites ci-dessus. Alors, quand devriez-vous choisir PDT au lieu de IPN?

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

Utilisez donc PDT si votre site comprend une fonctionnalité nécessitant une notification de paiement immédiate.

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 car PDT envoie immédiatement les confirmations de commande. Avec IPN, une telle commande immédiate n'est pas possible.

Avantages de l'IPN

PDT a une faiblesse majeure: il envoie les confirmations de commande une fois 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.

En revanche, avec IPN, l'envoi des confirmations de commande est pratiquement garanti, car IPN envoie une confirmation jusqu'à ce que votre site en accuse réception. Pour cette raison, Paypal vous recommande de mettre en œuvre 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 rejet de débit ainsi que des confirmations de commande ... Remarque: si votre site doit être averti immédiatement des paiements, vous pouvez implémenter à la fois IPN et PDT. Toutefois, si vous le faites, votre site recevra deux confirmations de commande pour chaque vente. Par conséquent, vous devez veiller à prendre des mesures (par exemple, expédier un produit) sur une seule copie d'un message de confirmation donné.

Documentation ici

109

Re 1. PDT est destiné à être utilisé avec la fonctionnalité de retour automatique pour les paiements sur site marchand. 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 Paypal Account Optional - utilisé pour activer le paiement par carte de crédit. Voici la note de Paypal: 'Si vous avez activé Retour automatique et que vous 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 l'option lui sera proposée. revenir.'. L'utilisateur aura la possibilité de revenir sur votre site (étape PDT) ou de rester sur le site Paypal. Pour résumer lorsque vous payez par carte de crédit, l'utilisateur peut ignorer l'étape PDT si l'utilisateur ne clique pas sur 'retourner au magasin'.

Re 2. C’est à vous de choisir les options de paiement que vous souhaitez autoriser. Si vous souhaitez autoriser le paiement sans compte Paypal, vous pouvez activer Account Optional . Si vous souhaitez autoriser uniquement les utilisateurs disposant d'un compte 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 un achat réussi. Manière recommandée serait de mettre en œuvre IPN. Le PDT ne fonctionne pas dans tous les cas et ne garantit pas la livraison du message. Voici un lien vers la documentation couvrant ce sujet PDT vs IPN .

0
jan salawa

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 indiquer l’état immédiat de la transaction sur votre site Web, ce qui vous permet de vérifier rapidement l’état de succès ou d’échec du paiement et de 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 pourrez l'utiliser pour mettre à jour votre base de données et traiter la commande.

Vous pouvez suivre ce guide pas à pas que j’ai trouvé très clair et utile - et qui est toujours valable en 2018. 

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

0
Sol