web-dev-qa-db-fra.com

Paypal PDT et IPN, comment ça marche?

PDT

Le transfert de données de paiement consiste à récupérer les données de transaction de l'achat effectué sur le site Paypal et vous souhaitez les récupérer sur votre propre site et les afficher à l'utilisateur. Vous voudrez peut-être également le stocker dans votre base de données à des fins d'archivage et de suivi. Mais je ne peux pas suivre exactement le documentation ici

Ce que je ne comprends pas, c'est

Une fois que vous avez activé PDT, chaque fois qu'un acheteur effectue un paiement sur son site Web et est redirigé vers votre URL de retour, un jeton de transaction est transmis en tant que variable "GET" à cette URL de retour. Afin d'utiliser correctement PDT et d'afficher les détails de la transaction à votre client, vous devez récupérer le jeton de transaction, nom de variable "tx", et récupérer les détails de la transaction auprès de Paypal en créant un HTTP POST vers Paypal.

Votre POST doit être envoyé à https://www.Paypal.com/cgi-bin/webscr . Vous devez publier le jeton de transaction à l'aide de la variable "tx" et la valeur du jeton de transaction précédemment reçu (par exemple "tx = transaction_token"), ainsi que le jeton d'identité spécial à l'aide de la variable at et la valeur de votre jeton d'identité PDT (par exemple " at = identity_token "). Vous devrez également ajouter une variable nommée "cmd" avec la valeur "_notify-synch", par exemple "cmd = _notify-synch", à la chaîne POST.

IPN

J'ai configuré la notification de paiement instantanée par le biais de cette documentation . Il s’agit essentiellement de vous connecter à votre compte Paypal et d’activer IPN tout en spécifiant une URL à laquelle la notification sera envoyée. Ceci est utilisé pour compléter une commande afin que le produit puisse être expédié. Ce que j'ai fait est de configurer une page PHP. J'ai créé une table et chaque fois que cette page est appelée (ou touchée), elle enregistre une entrée dans la table afin que je sache qu'une notification est venue de Paypal. Mais ça ne marche pas non plus.

Qu'est-ce que je fais vraiment mal? La première chose que je veux résoudre, c’est que lorsque l’acheteur paie le montant, il est automatiquement redirigé vers mon site. Je l'ai activé mais la redirection automatique ne fonctionne tout simplement pas. Au lieu de cela, il affiche l’URL en tant qu’option après la confirmation de paiement.

Quelqu'un peut-il guider mon processus PDT? Où puis-je faire la demande de PDT, se trouve-t-il dans la toute première demande (bouton Acheter) ou est-il envoyé plus tard?

Une addition

J'ai trouvé un bon code d'échantillonnage indiquant comment tout devrait fonctionner, mais cela ne fonctionne toujours pas. J'utilise ce code http://officetrio.com/modules/free-php-Paypal-ipn-script.php pour IPN. J'utilise ceci pour PDT. Celui-ci utilise SSL, j'ai changé SSL en HTTP normal (version copiée Paypal), ne fonctionne toujours pas. http://ykyuen.wordpress.com/2010/02/17/Paypal-payment-data-transfer-sample-code/

5
anonymous

Lorsque j'intègre Paypal, j'utilise uniquement le jeton de transaction PDT sur l'URL de retour pour permettre à l'utilisateur de visualiser l'état du paiement. Ainsi, lorsque l'utilisateur revient de Paypal, le site Web envoie une demande POST (côté serveur) au serveur Paypal et le statut actuel est récupéré. Ces informations sont affichées à l'utilisateur avec les détails de la commande. En cas d'échec, l'utilisateur a le choix d'essayer à nouveau ou de choisir une autre option de paiement. Si cela réussit, aucune autre action n'est nécessaire.

Je ne mets à jour le statut de paiement réel de la commande que lorsque je reçois une mise à jour IPN de Paypal. Cette mise à jour IPN se traduit à nouveau par une demande POST au serveur Paypal et le statut reçu à ce moment-là sera utilisé pour mettre à jour le statut de paiement.

Testez-vous avec l’environnement Paypal Sandbox? Pour être honnête, l'utilisation de la *** est pénible et parfois déroutante, car vous devez vous connecter plusieurs fois avec différents comptes et types de comptes pour finalement simuler un paiement. Vous pouvez activer le retour automatique sous Préférences de vente -> Préférences de paiement sur le site Web, puis activer le retour automatique, activer le transfert des données de paiement et fournir une URL de retour. Vous n'avez pas besoin d'ajouter la variable tx querystring car Paypal l'ajoutera automatiquement.

Vous pouvez activer IPN sous Préférences de vente -> Préférences de notification de paiement instantané) et fournir l'URL de notification que Paypal doit utiliser. Paypal enverra une demande GET à cette URL à chaque mise à jour concernant un paiement.

2
Marco Miltenburg