2010-07-22 7 views
2

J'essaie de créer un système d'achat paypal simple. En passant par quelques tutoriels, il semble que j'ai besoin d'utiliser le système IPN (Instant Payment Notification) pour savoir si la commande est payée.Paypal API Question - Puis-je utiliser Return Url pour vérifier le paiement

Est-il suffisant d'utiliser à la place la variable return url et de passer l'identifiant de la commande? Par exemple, quelque chose comme retour = "http://mysite.com/paid?id=5 & pass = xyS2y"

Les variables - PayPal HTML Variables

Répondre

5

Non - l'utilisateur peut ne pas revenir sur votre site après paiement . Si vous obtenez un retour PayPal, vous devez toujours le valider comme vous le feriez pour IPN afin de confirmer que le paiement a été effectué, pour le montant correct, pour les bons articles, pour le bon compte du bénéficiaire (vous), pour le bon client, pour la bonne référence de commande, dans la bonne devise, avec le bon montant d'expédition, etc. Vos besoins sur cette validation peuvent varier en fonction de la complexité du paiement que vous prenez (si c'est juste un don par exemple c'est moins de traitement par rapport à dire une commande de produits multiples).

Vous devrez également vous assurer que vous ne doublez pas la commande lorsque vous obtiendrez l'IPN plus tard.

+0

Merci! Si elles retournent cependant, puis-je supposer que le paiement est terminé? Ce qui m'inquiète, c'est que paypal déclare que la page de retour devrait indiquer que la transaction est terminée - mais en réalité l'IPN pourrait être retardé jusqu'à ce qu'ils reviennent, correct? – stringo0

+0

@ stringo0 l'IPN pourrait être retardé pendant un certain temps mais il est "garanti" que vous l'obtiendrez (ils continuent à envoyer jusqu'à ce que vous donniez la réponse valide et abandonniez après x jours). Si les variables de retour indiquent qu'ils ont payé, alors vous faites la même vérification que vous feriez avec un IPN (postbacks à PayPal, etc.) et pouvez ensuite confirmer que le paiement est passé. Vous devrez vous assurer de ne pas traiter l'IPN plus tard comme une commande séparée. –