web-dev-qa-db-fra.com

Notifier l'url de Paypal

Paypal me renvoie avec succès à l'URL de retour que je spécifie lors de la création du bouton Acheter maintenant. Mais maintenant, je suis confus. Comment puis-je récupérer les détails de la transaction qui s'est produite sur Paypal? Et je veux également définir des valeurs de base de données sur l'URL de retour. Mais je crains que si mon utilisateur sans payer sur Paypal accède à cette URL, il deviendra lui aussi membre premium. Comment puis-je sécuriser cela?

44
TCM

Paypal renvoie les données sur votre site via ce qu'ils appellent IPN. C'est vraiment juste un rappel vers une URL que vous spécifiez. Vous pouvez définir cette URL via la variable notify_url que vous pouvez envoyer à Paypal.

Exemple:

<input name="notify_url" value="http://yourdomain.com/notify_url.php" type="hidden">

Le notify_url.php dans l'exemple ci-dessus reçoit des variables POST de Paypal lorsque le paiement est terminé, même si le client ne revient jamais sur votre site Web.

Certaines des variables importantes retournées par Paypal sont:

  • mc_gross
  • facture d'achat
  • sett_amount
  • éligibilité_de_protection
  • address_status
  • payer_id
  • impôt
  • rue d'adresse
  • date de paiement
  • statut de paiement
  • charset
  • address_Zip
  • mc_shipping
  • mc_handling
  • prénom
  • mc_fee
  • address_country_code
  • taux de change
  • nom_adresse
  • notify_version
  • sett_currency
  • douane
  • payer_status
  • affaires
  • adresse_pays
  • l'addresse de la ville
  • verify_sign
  • payer_email
  • txn_id
  • type de paiement

la facture est retournée si vous la définissez. Il peut être utilisé comme votre propre identifiant de commande/identifiant de transaction.

txn_id est généré par Paypal et c'est leur propre identifiant pour la transaction.

Si vous ajoutez des articles vous-même, Paypal renvoie également num_cart_items, item_name1 (item_name2, item_name3), quantité1 (quantité2, quantité3) et autres.

Plus de lecture sur https://cms.Paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables

Bien sûr, vous avez toujours le problème à résoudre, comment vérifier toutes ces données et les connecter à un client dans votre propre base de données, ce que vous avez probablement.

Ce que je fais est de sauvegarder une "commande" temporaire avant d'envoyer le client à Paypal avec un identifiant de facture, le même identifiant que j'envoie à Paypal comme facture. De cette façon, ma page notify_url.php peut vérifier ma base de données pour un identifiant de facture et comparer la commande/le paiement.

78
jamietelin