Ceci est une question complémentaire à: PHP: Un moyen facile de démarrer le paiement PayPal?
Donc, mon problème est que je spécifie l'url de retour. Cependant, après avoir payé avec PayPal, je me retrouve à un écran qui dit:
Vous venez de terminer votre paiement. XXXX, vous venez de terminer votre paiement. Votre ID de transaction pour ce paiement est: XXXXXXXXXXXXX.
Nous enverrons un e-mail de confirmation à [email protected]. Cette transaction apparaîtra sur votre relevé comme PAYPAL.
Go to PayPal account overview
J'en ai besoin pour ne pas afficher cet écran et accéder directement à l'URL de retour. J'ai:
- Définissez la variable "return"
- Définissez la variable "rm" sur: 2 (qui selon le guide = " le navigateur de l'acheteur est redirigé vers l'URL de retour en utilisant la méthode POST, et toutes les variables de paiement sont incluses ")
En fait, voici ma fiche complète:
<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_xclick" name="cmd">
<input type="hidden" value="[email protected]" name="business">
<!-- <input type="hidden" name="undefined_quantity" value="1" /> -->
<input type="hidden" value="Order at The Greek Merchant:<Br />Goldfish Flock BLG<br />" name="item_name">
<input type="hidden" value="NA" name="item_number">
<input type="hidden" value="22.16" name="amount">
<input type="hidden" value="5.17" name="shipping">
<input type="hidden" value="0" name="discount_amount">
<input type="hidden" value="0" name="no_shipping">
<input type="hidden" value="No comments" name="cn">
<input type="hidden" value="USD" name="currency_code">
<input type="hidden" value="http://XXX/XXX/XXX/paypal/return" name="return">
<input type="hidden" value="2" name="rm">
<input type="hidden" value="11255XXX" name="invoice">
<input type="hidden" value="US" name="lc">
<input type="hidden" value="PP-BuyNowBF" name="bn">
<input type="submit" value="Place Order!" name="finalizeOrder" id="finalizeOrder" class="submitButton">
</form>
Une idée de la façon dont je peux le faire revenir automatiquement? Sinon, comment puis-je récupérer le résultat du paiement sur mon site Web afin de pouvoir mettre à jour la base de données? Qu'est-ce que l'IPN?
Réponses:
Vous devez activer le retour automatique dans votre compte PayPal, sinon il ignorera le
return
champ.À partir de la documentation (mise à jour pour refléter la nouvelle mise en page janvier 2019):
IPN est pour la notification instantanée de paiement. Cela vous donnera des informations plus fiables / utiles que ce que vous obtiendrez du retour automatique.
La documentation pour IPN est ici: https://www.x.com/sites/default/files/ipnguide.pdf
Documentation en ligne pour IPN: https://developer.paypal.com/docs/classic/ipn/gs_IPN/
La procédure générale est que vous transmettez un
notify_url
paramètre avec la demande et que vous configurez une page qui gère et valide les notifications IPN, et PayPal enverra des demandes à cette page pour vous avertir lorsque les paiements / remboursements / etc. traverser. Cette page de gestionnaire IPN serait alors le bon endroit pour mettre à jour la base de données pour marquer les commandes comme ayant été payées.la source
My Selling Tools
Étape 4) CliquezWebsite Preferences
sousSelling Online
return
champ." Toutreturn
paramètre d'URL que vous passez à la caisse serait honoré et remplacerait toute URL de retour automatique (ou son absence) configurée dans le profil de compte PayPal du vendeur, mais si le retour automatique n'est pas activé, l'acheteur devra cliquer manuellement au-delà du fin de la commande afin d'être redirigé vers cette URL, plutôt que d'être redirigé automatiquement.Exemple de formulaire utilisant PHP pour les paiements directs.
veuillez parcourir les champs notify_url, return, cancel_return
exemple de code pour la gestion d'ipn (my_ipn.php) qui est demandé par paypal après le paiement.
Pour plus d'informations sur la création d'un IPN, veuillez consulter ce lien.
L'image ci-dessous vous aidera à comprendre le processus paypal.
Pour plus d'informations, reportez-vous aux liens suivants;
j'espère que cela vous aidera .. :)
la source
une façon dont j'ai trouvé:
essayez d'insérer ce champ dans votre code de formulaire généré:
rm signifie méthode de retour ;
2 moyens (post)
Ensuite, après les achats de l'utilisateur et le retour à l'url de votre site, cette URL obtient également les paramètres POST
ps si vous utilisez php, essayez d'insérer
var_dump($_POST);
dans votre URL de retour (script), puis effectuez un achat test et lorsque vous reviendrez sur votre site, vous verrez quelles variables sont présentes sur votre URL.la source
Partager ceci car j'ai récemment rencontré des problèmes similaires à ce fil
Pendant longtemps, mon script a bien fonctionné (formulaire de paiement de base) et a renvoyé les variables POST à ma page success.php et les données IPN en tant que variables POST également. Cependant, dernièrement, j'ai remarqué que la page de retour (success.php) ne recevait plus de variables POST. J'ai testé dans Sandbox et en direct et je suis presque sûr que PayPal a changé quelque chose!
Le notify_url reçoit toujours les données IPN correctes me permettant de mettre à jour DB, mais je n'ai pas été en mesure d'afficher un message de réussite sur ma page URL de retour (success.php).
Bien que j'aie essayé de nombreuses combinaisons pour activer et désactiver les options dans les préférences de paiement du site PayPal et l'IPN, j'ai dû apporter des modifications à mon script pour m'assurer de pouvoir toujours traiter un message. J'ai accompli cela en activant PDT et Auto Return, après avoir suivi cet excellent guide .
Maintenant, tout fonctionne bien, mais le seul problème est que l'URL de retour contient toutes les variables PDT, ce qui est moche!
Vous pouvez également trouver cela utile
la source
Je pense que l'idée de définir les valeurs de retour automatique comme décrit ci-dessus par Kevin est un peu étrange!
Disons, par exemple, que vous avez un certain nombre de sites Web qui utilisent le même compte PayPal pour gérer vos paiements, ou dites que vous avez un certain nombre de sections dans un site Web qui effectuent différentes tâches d'achat et nécessitent des adresses de retour différentes lors du paiement. est terminé. Si je mets un bouton sur ma page comme décrit ci-dessus dans la section `` Exemple de formulaire utilisant PHP pour les paiements directs '', vous pouvez voir qu'il y a une ligne ici:
où vous définissez la valeur de retour individuelle. Pourquoi doit-il être défini de manière générale, également dans la section profil?!?!
De plus, comme vous ne pouvez définir qu'une seule valeur dans la section Profil, cela signifie (AFAIK) que vous ne pouvez pas utiliser le retour automatique sur un site avec plusieurs actions.
Commentaires s'il vous plaît ??
la source
return
valeurs de remplacement par bouton alors? Je peux donc avoir différentes pages de retour qui recevront toujours toutes les données PDT?sur la page de paiement, recherchez l'élément de formulaire caché 'cancel_return':
définissez la valeur de l'élément de formulaire cancel_return sur l'URL vers laquelle vous souhaitez revenir:
la source