Jean ROCHARD
Je partage ma passion de Wordpress dans des articles techniques sur les plugins, thèmes, nouveautés geek et optimisation SEO "on-site".
Jean ROCHARD

@jean_rochard

Chez Terre Digitale, on mange du Wordpress dès le petit-dej'.
Petit guide pour mettre en place les Facebook Instant Articles à partir de vos posts Wordpress : https://t.co/lSbzdM6z9j - 7 mois ago

Lorsque l’on développe une activité de commerce en ligne, il arrive que l’on multiplie les e-commerce pour diverses raisons : par exemple pour adapter la communication à une certaine cible, pour spécialiser un catalogue trop complet pour une seule boutique…

Quelle que soit la raison, c’est toujours la même société qui facture les produits et services vendus. Il est donc logique d’utiliser le même compte Paypal sur ces différents sites ; d’autant plus que Paypal précise dans ses CGV que vous ne devez posséder qu’un seul compte Paypal par compte bancaire.

Hors gérer des retours de notification de paiement (IPN) de façon multi sites n’est pas une chose facile avec Paypal ; et c’est le sujet de cet article (technique, il faut bien le dire).

Présentation des retours Paypal IPN

Pour gérer les notifications de paiement, Paypal utilise un système nommé IPN. Le schéma de fonctionnement est ici :

ipn_overview

Pour activer ces notifications, il faut aller dans l’interface Paypal et préciser l’URL sur votre site vers laquelle Paypal enverra les informations de la transaction. La documentation est ici.

Une des limitations de Paypal est de ne vous proposer qu’une seule URL de retour IPN ; alors comment faire lorsque vous avez plusieurs sites ?

Comme le précise la documentation, vous pouvez utiliser le paramètre notify_url dans le formulaire destiné à Paypal ou dans vos boutons de paiement ; mais ce n’est pas toujours évident de modifier une code source ni même d’y voir accès selon les outils utilisés. Alors comment faire dans ce cas pour gérer des retours IPN multi sites ?

Gérer plusieurs adresses mails Paypal

Cette étape n’est pas obligatoire mais elle permettra de bien faire le tri entre les paiements provenant de vos différentes activités. Autant Paypal ne permet pas de gérer plusieurs IPN, autant il est possible de définir jusqu’à 8 adresses mails pour le même compte Paypal. Pour chacun de vos e-commerce, je vous propose donc de créer une adresse mail particulière. Suivre ces indications pour cela.

Ensuite, je vous propose 2 solutions différentes pour gérer la passerelle d’IPN.

Solution 1 : multi IPN Paypal avec Zapier

zapier-logo

Le site zapier.com est toujours une source de solutions originales quand il s’agit de faire des liens entre des services en ligne présentant une API. Vous trouverez ici une bonne documentation pour mettre en place un workflow multi IPNs. La notification IPN de Paypal se fera vers Zapier et c’est donc Zapier qui se chargera d’être la passerelle tierce vers vos différents sites.

Pour chaque nouveau site, vous ajouterez un « zap ». Vous pourrez aussi ajouter un critère de filtre pour ne pas envoyer la notification au bon site en utilisant le critère « receiver_mail » et lui indiquant le compte mail spécifique de votre boutique.

Attention, le module Zapier Paypal est un module Premium et il vous faudra débourser 20$ / mois (au moins, cela peut augmenter en fonction du nombre de vos transactions et de vos sites) pour le faire fonctionner.

Solution 2 : faire votre propre passerelle

Cet article vous expliquera comment créer votre passerelle vous même en PHP. Le script est simple et il vous suffira de personnaliser 2 éléments dans les lignes 25 à 50 du code ci dessous :

  • tout d’abord, la liste des adresses IPN de vos différents sites
  • ensuite, la liste des critères de filtre (voir les informations disponibles passées dans l’IPN)

Hébergez ce script soit sur une de vos boutiques soit sur un hébergement tiers ; et paramétrez Paypal avec l’URL de ce script comme URL d’IPN (ex : http://www.mondomaine.fr/paypal/multiple-paypal-ipn.php). Et le tour sera joué !

Je vous remets le code PHP :