Question

J'ai du mal à choisir entre la notification de paiement instantané de PayPal (IPN) 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 le fonctionnement de l'IPN, mais je vois maintenant que je pourrais peut-être déclencher les différentes actions qui se déroulent après un achat réussi plus facilement avec PDT, car les données sont retournées là-bas et ensuite (par opposition à un auditeur séparé) .

Cependant, la documentation PDT de PayPal contient cette ligne cryptique: "PDT n'est pas destiné à être utilisé avec la carte de crédit ou les transactions de paiement express." ... 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 à payer?

  3. Cela signifie-t-il que si je souhaite permettre aux utilisateurs de payer avec leurs comptes PayPal et / ou avec des cartes de crédit directement, je dois implémenter IPN?

Quelqu'un pourrait-il avoir vécu ceci comme sortant la lumière?

Était-ce utile?

La solution

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 obtenez la notification instantanément et pouvez effectuer tout traitement supplémentaire requis et afficher à l'utilisateur une page de confirmation.
  • Avec IPN, vous êtes garanti pour ê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 tirez le meilleur parti des deux mondes. Mais si vous n'en faites qu'un, IPN est le fiable.

Une prise: si vous implémentez les deux, il y a une chance que vos paiements puissent être traités deux fois. Veillez à vous assurer que cela ne se produit pas. L'application que j'ai écrite gère le PDT et l'IPN presque identiques (la partie backend est la même) et que le code acquiert un verrouillage par web-utilisateur dans la base de données, de sorte que si le même utilisateur essaie de soumettre exactement le même paiement ne peut être traité qu'une seule fois. Une fois traités, le résultat de ce processus est réutilisé pour toute tentative ultérieure pour la traiter.

ÉditerEncore une chose: IPN porte plus d'informations que PDT. Il existe de nombreux messages différents que vous pouvez recevoir de l'IPN, tels que la notification de recharge, etc., et vous devez donc vraiment l'implémenter.


Le système PDT de PayPal envoie des confirmations de commande aux sites marchands qui utilisent la norme PayPal Payments 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 capacités décrites ci-dessus. Alors, quand devriez-vous choisir PDT au lieu de l'IPN?

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

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

Par exemple, considérez 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 des confirmations de commande. Avec IPN, une telle réalisation immédiate des commandes n'est pas possible.

Avantages de l'IPN

PDT a une faiblesse majeure: elle envoie des confirmations de commande une fois et une seule fois. En conséquence, 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 car IPN renvoie une confirmation jusqu'à ce que votre site reconnaisse le reçu. Pour cette raison, PayPal vous recommande d'implémenter IPN plutôt que PDT.

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

Documentation ici

Autres conseils

RE 1. PDT est destiné à utiliser avec la fonction de retour automatique pour les paiements du site Web. Le rendement 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 facultatif - utilisé pour permettre le paiement de la carte de crédit. Voici la note de PayPal: «Si vous avez allumé Retour automatique Et ont choisi d'activer le compte PayPal facultatif pour les nouveaux utilisateurs, un nouvel utilisateur ne sera pas automatiquement dirigé vers votre site Web, mais aura la possibilité de retourner. ». L'utilisateur aura une option pour revenir sur votre site (étape PDT) ou rester sur le site PayPal. Pour résumer lors de la paiement par carte de crédit, l'utilisateur peut ignorer l'étape PDT si l'utilisateur ne clique pas sur «retour au lien de stockage».

RE 2. C'est à vous quelles options de paiement souhaitez-vous autoriser. Si vous souhaitez autoriser le paiement sans un compte PayPal, vous pouvez activer Compte facultatif. Si vous souhaitez autoriser uniquement les utilisateurs avec des 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 un achat réussi. La manière recommandée serait d'implémenter IPN. PDT ne fonctionne pas pour tous les cas et ne garantit pas la livraison de messages. Voici un lien vers le doc couvrant ce sujet PDT vs IPN.

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 de transaction immédiate à votre site Web, où vous pouvez rapidement vérifier le succès du paiement ou l'état de défaillance et fournir à l'utilisateur un message approprié.

Pendant ce temps, vous pouvez attendre la vérification complète de l'IPN en arrière-plan. Une fois reçu, vous pouvez l'utiliser pour mettre à jour 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/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top