100 votes

IPN vs PDT dans Paypal

J'ai un peu de difficulté à choisir entre PayPal de la Notification Instantanée de Paiement (IPN) et les Données de Paiement de Transfert (PDT).

En gros, les utilisateurs achètent un produit unique sur mon site, payer sur PayPal, et de retour vers mon site. Je comprends comment IPN fonctionne, mais je suis en train de voir pour que je puisse être en mesure de déclencher les différentes actions qui ont lieu après un achat réussi plus facilement avec des PDT, comme les données est retourné là-bas et ensuite (par opposition à avoir besoin d'un autre auditeur).

Cependant, PayPal du PDT de la documentation contient ce cryptique: "PDT n'est pas destiné à être utilisé avec la carte de crédit ou de paiement Express transactions". ... mais je ne peux pas trouver quelque chose de plus que ce soit sur le sujet.

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

  2. Est-ce à dire que l'utilisateur doit disposer d'/créer un compte PayPal pour payer?

  3. Ça veut dire 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?

Pourrait quelqu'un qui est passé par la présente de bien vouloir jeter un peu de lumière?

114voto

L'Api pour les HAP et les IPN sont similaires. La principale différence est que lorsque vous recevez la notification. Pour cette raison, je recommande la mise en œuvre à la fois.

  • Avec PDT que vous obtenez la notification instantanément et peut faire aucun traitement supplémentaire nécessaire et de montrer à l'utilisateur une page de confirmation.
  • Avec IPN vous avez la garantie 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.

Mettre en œuvre les deux et obtenir le meilleur des deux mondes. Mais si vous êtes seulement faire un, IPN est fiable.

Un hic: si vous implémentez puis, il y a une chance que vos paiements pourraient être traitées deux fois. Prendre soin de s'assurer que cela n'arrive pas. L'application que j'ai écrit gère les PDT et IPN presque à l'identique (le backend partie est la même chose) et que le code acquiert par le web de l'utilisateur de verrouiller la base de données, de sorte que si le même utilisateur tente d'envoyer exactement le même paiement en plusieurs fois, il ne peut être traitée qu'une fois. Une fois traitées, le résultat de ce processus est ré-utilisé pour toutes les tentatives ultérieures pour le traiter.

Modifier Une chose de plus: IPN transporte plus d'informations que les PDT. Il ya beaucoup de différents messages que vous pouvez recevoir à partir IPN, tels que les avis de rétrofacturation, etc, et donc vous devriez vraiment mettre en œuvre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X