2012-01-28 3 views
12

Est-il possible pour moi d'obtenir des variables post paypal dans l'URL de retour. Je veux montrer un message de réponse dans la page d'url de retour selon que la transaction de l'utilisateur a été accomplie/en attente/a échoué. Je suis en train de tester avec le compte paypal sandbox.Paypal - Retour page url et variables

Voici mon code,

<input type="hidden" name="item_name" value="Credit Purchase">  
<input type="hidden" name="business" value="<?php echo paypal_business_id;?>"> 
<input type="hidden" name="rm" value="2"> 
<input type="hidden" name="cmd" value="_xclick"> 
<input type="hidden" name="currency_code" id="currency_code" value="GBP"> 
<input type="hidden" name="custom" id="custom" value="<?php echo $user."@@@".$num_purchase;?>"> 
<input type="hidden" name="return" value="<?php echo base_url(); ?>buy/success"> 
<input type="hidden" name="cancel_return" value="<?php echo base_url(); ?>"> 
<input type="hidden" name="notify_url" value="<?php echo base_url(); ?>buy/notify 

Répondre

14

Il est possible d'ajouter return variable, le numéro de commande, vous obtenez votre numéro de commande lorsque le retour de l'utilisateur et de l'identifiant de commande que vous lui montrer les informations.

Par exemple,

<input type="hidden" name="return" value="myReturnUrl.php?OrderID=88273882717A72734"> 
+0

Merci pour votre réponse. Mon exigence est de connaître le statut du paiement. Tout comme nous obtenons l'ensemble des variables postées depuis paypal dans notify url, le même ensemble de variables sera-t-il disponible en retour? Plus tôt quand j'ai essayé il y a quelques jours, je pouvais l'obtenir, mais maintenant ils ne sont pas postés pour retourner l'url. Je veux montrer le message que la transaction a réussi/a échoué dans la page d'URL de retour. –

+1

J'ai récupéré les choses correctement. Le problème était parce que je cliquais sur le lien de retour avant la fin du temps de redirection automatique de 10 secondes. :) –

4

Attendez que la notification IPN à entrer, et regardez le payment_status à cela.
Étant donné que les transactions sont automatiquement filtrées en cas de fraude et qu'elles peuvent être financées par des comptes bancaires, le renvoi à votre URL de retour n'équivaut pas toujours à une transaction réussie.

Pour une liste de variables IPN vous pouvez vous attendre, voir PayPal IPN and PDT variables
Vous voulez regarder (au moins) aux valeurs suivantes:

  • PAYMENT_STATUS
  • mc_gross et/ou payment_gross (payment_gross est utilisé si la transaction est en USD, mc_gross si elle est toute autre devise)
  • payment_type
  • pending_reason
+0

Oui dans la page succès, je vérifie si le statut du paiement est terminé ou non. Selon le statut, j'ai encadré une page de réponse. Maintenant, le problème auquel je suis confronté est, dans Mozilla Firefox (9.0.1) une fois que je terminer la transaction, avant d'être redirigé pour retourner la page d'url, le navigateur lui-même affiche un message, demandant une confirmation popup pour continuer plus loin. Si je clique immédiatement sur le bouton "ok" alors les choses vont bien, mais si je ne fais rien, la page sera redirigée automatiquement et je ne recevrai aucune des variables postées depuis paypal. –

+0

Ce type de problème n'existe pas dans Chrome et IE. Quelqu'un pourrait-il me dire comment pourrais-je éliminer le problème dans firefox –

-2

Ce type de problème existe dans FF si vous attendez 10 s. Ma solution est de changer l'URL de retour à "xxx.com?orderId=xxx". Ensuite, vous jugez s'il s'agit d'un POST ou GET. et sélectionnez vos informations de commande par commandeId Vous n'avez pas besoin de vous soucier de l'état du paiement. parce que cela devrait toujours être un succès si vous retournez dans votre magasin pas "cancel_return"

+2

Wow Quan, c'est un conseil extrêmement mauvais et dangereux. Vous devez vérifier le statut du paiement. Vous ne devez PAS simplement supposer que le paiement a été effectué car l'URL de retour a été appelée. Vous ne devez pas supposer que le retour a été appelé par PayPal, vous ne devez pas supposer que PayPal a traité le paiement, et vous ne devez pas inclure l'identifiant de la commande dans l'URL de retour. – user432297