PayPal standard et nopCommerce

by Nicolas 3. juillet 2010 19:54

La passerelle PayPal développée pour nopCommerce propose 3 option d’utilisation :

  1. Direct, qui permet l’utilisation de la carte bancaire sur le site marchand, sans redirection vers PayPal
  2. Standard, qui utilise une redirection vers PayPal pour son utilisation traditionnelle, avec le choix d’utiliser ou non un compte PayPal
  3. Express, qui redirige aussi les utilisateurs vers PayPal, mais ceux ci doivent impérativement disposer d’un compte PayPal

image

Lorsque vous utilisez le mode standard, la deuxième partie de la page de configuration vous indique la procédure à suivre pour activer IPN. Ce qui est annoncé comme optionnel ne l’est pas vraiment, car IPN, c’est le seul retour fiable (serveur à serveur) des informations de paiement de PayPal à votre serveur. Suite au paiement d’un client sur PayPal, si l’utilisateur ferme son navigateur, votre site ne sera jamais notifié du succès ou de l’échec du paiement.  Je vous suggère donc d’activer IPN.

 

Cependant il y a une surprise : on ne peut configurer qu’une url IPN par compte client… ce qui devient gênant pour tous ceux qui doivent gérer plusieurs sites. On risque de voir les retours IPN d’un site A arriver sur l’url IPN d’un site B, c’est embêtant…

La solution est assez simple, afin de disposer d’une url IPN par site, il suffit de la fournir dans chaque transaction PayPal, et plus de manière unique via le compte utilisateur.

Techniquement, cela se fait en deux étapes

  1. Désactivez IPN dans votre compte PayPal si vous l’aviez activé
  2. Modifiez les sources de nop :

On doit rajouter dans l’url de paiement un paramètre supplémentaire : notify_url

Ouvrez le projet Nop.Payment.PayPal,
fichier PayPalStandardPaymentProcessor.cs,
méthode public string PostProcessPayment(Order order)

Ajoutez ces deux lignes après la construction du paramètre return et cancel_return (au milieu)

string notifyURL = CommonHelper.GetStoreLocation(false) + "PaypalIPNHandler.aspx";
builder.AppendFormat("&notify_url={0}", HttpUtility.UrlEncode(notifyURL));

Compilez, déployez la dll Nop.Payment.PayPal.dll, et le tour est joué!

Tags:

Commentaires (3) -

16/11/2010 03:02:43 #

brevet

J'utilise cette solution paypal et j'en suis très satisfait ! Merci pour vos explications.

brevet France | Répondre

05/05/2011 20:04:28 #

ray ban sunglasses

read the post ,you can know more .
http://www.raybansshop.uk.com/
:ray ban

http://www.raybanonsale.com
:ray ban

ray ban sunglasses United States | Répondre

27/09/2011 19:33:17 #

bottes ugg

cl

bottes ugg People's Republic of China | Répondre

Ajouter un commentaire

  Country flag

biuquote
  • Commentaire
  • Prévisualiser
Loading