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