Nouveau tutorial qui vous permettra d'intégrer le service de paiement en ligne PayPal à votre site web PHP.
Le but de ce tutorial est de vous guider pas à pas dans l'intégration du service de paiement en ligne paypal et de vous expliquer comment fonctionne le processus de paiement ...
Ce tutorial s'applique uniquement aux sites développés en PHP.
Pour commencer, voyons comment fonctionne le processus de paiement en ligne avec PayPal.
Voici le schéma d'une transaction typique:
Pour les non anglophones:
Une fois que le paiement est validé (Etape 4), Paypal lance une requête IPN sur votre site pour que vous puissiez traiter le paiement. Nous verrons plus tard comment récupérer les données de cette requête.
En ce qui concerne notre site, nous aurons besoin de créer 4 pages web:
Maintenant que l'on a vu en gros le principe, passons à la mise en place.
PayPal a mis en place une sandbox de son service permettant de tester l'intégration du service et simuler des paiements sans qu'aucuns fonds ne soient versés.
Très pratique pour la période de test !
1) Rendez-vous sur le site développeur de PayPal et créez un compte.
Le compte sandbox est indépendant de votre compte PayPal original. Vous n'avez pas besoin de mettre la même adresse.
2) Créer un premier compte de Test de type "Buyer"
Dans un premier temps, nous allons créer un compte Buyer, celui qui achetera le produit.
Cliquez sur le lien "Create a preconfigured buyer or seller account." situé sur la page d'accueil de la Sandbox.
Mettez n'importe quel nom d'utilisateur. L'adresse email n'a pas besoin d'être valide.
Puis validez.
3) Créer un deuxième compte de test, cette fois-ci de type "Seller"
Réitérez l'opération pour créer le compte marchand, celui qui recevra l'argent virtuel de nos tests.
Cliquez sur le lien "Create a preconfigured buyer or seller account." situé sur la page d'accueil de la Sandbox.
Sélectionnez Account Type = "Seller".
Validez.
4) Vérifiez que vos deux comptes soient bien créés dans votre sandbox
Cliquez sur "Test Accounts" dans le menu de la sandbox.
Vous devriez avoir vos deux comptes virtuels affichés.
Vous pouvez essayer de lancer la sandbox sur l'un des deux comptes, vous verrez que l'interface est identique à celle que vous avez avec votre compte PayPal réel.
5) Activer les notifications Instantannées de paiement (IPN) sur le compte vendeur
Sélectionnez le compte vendeur (Celui qui fini par biz@votredomaine) puis lancez la sandbox (Cliquez sur Enter Sandbox Site).
Identifiez vous dans la nouvelle page avec l'email / pass de votre compte virtuel vendeur.
Allez dans la partie "Profile" puis "Selling Preferences" et cliquez sur le lien "Instant Payment Notification".
Activez la notification et spécifiez le domaine de votre site.
Passons maintenant au développement.
Nous allons mettre en place le formulaire de paiement associé à notre produit ou service.
Typiquement, il est préférable que cette page soit sécurisée avec du SSL pour crypter les paramètres qui seront envoyés à PayPal, mais ce n'est pas non plus une obligation.
Pour chacun de vos produits en vente, ou pour la validation de votre panier ou même l'achat de crédits pour un service, vous devrez créer un formulaire comme celui-ci:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> <input type='hidden' value="Montant_Achat" name="amount" /> <input name="currency_code" type="hidden" value="EUR" /> <input name="shipping" type="hidden" value="0.00" /> <input name="tax" type="hidden" value="0.00" /> <input name="return" type="hidden" value="http://votredomaine/paiementValide.php" /> <input name="cancel_return" type="hidden" value="http://votredomaine/paiementAnnule.php" /> <input name="notify_url" type="hidden" value="http://votredomaine/validationPaiement.php" /> <input name="cmd" type="hidden" value="_xclick" /> <input name="business" type="hidden" value="votre_emailtest_biz@domaine" /> <input name="item_name" type="hidden" value="Nom de votre produit" /> <input name="no_note" type="hidden" value="1" /> <input name="lc" type="hidden" value="FR" /> <input name="bn" type="hidden" value="PP-BuyNowBF" /> <input name="custom" type="hidden" value="ID_ACHETEUR" /> <input alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée" name="submit" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynow_LG.gif" type="image" /><img src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" border="0" alt="" width="1" height="1" /> </form>
Ce formulaire ne comporte que les paramètres basiques essentiels, il en existe beaucoup d'autres, allez faire un tour sur la documentation paypal pour plus de détails.
Décortiquons ligne par ligne le code du formulaire:
1) La déclaration du formulaire
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
Nous déclarons le formulaire. Les valeurs seront envoyées à la sandbox pour nos tests. Une fois que vous passerez en production, il faudra que vous changiez l'adresse pour: https://www.paypal.com/cgi-bin/webscr
2) Le montant de la transaction
<input type='hidden' value="Montant_Achat" name="amount" />
Le paramètre amount contiendra le montant de la transaction. Vous pouvez le charger automatiquement si vous avez des produits avec des tarifs fixes, avec du PHP.
Mais vous pouvez aussi faire un select permettant de choisir parmi plusieurs prix:
<select name="amount"> <option value='10'>10 Crédits</option> <option value='25'>25 Crédits</option> <option value='50'>50 Crédits</option> </select>
A vous de voir !
3) Choix de la monnaie
<input name="currency_code" type="hidden" value="EUR" />
Vous pouvez spécifier la monnaie par défaut ou alors changer dynamiquement la valeur si votre site a une vocation internationale.
4) Frais de port
<input name="shipping" type="hidden" value="0.00" />
5) Taxe TVA
<input name="tax" type="hidden" value="0.00" />
Laisser à 0 si vous n'avez pas de taxes sur le produit ou service.
6) Adresses des pages de retour
<input name="return" type="hidden" value="http://votredomaine/paiementValide.php" /> <input name="cancel_return" type="hidden" value="http://votredomaine/paiementAnnule.php" /> <input name="notify_url" type="hidden" value="http://votredomaine/validationPaiement.php" />
Il faut spécifier dans le formulaire les adresses des trois pages de retour:
7) Type de bouton cliqué
<input name="cmd" type="hidden" value="_xclick" />
Ce paramètre permet de déterminer sur quel type de bouton l'utilisateur à cliqué. la valeur "_xclick" signifie que l'on a cliqué sur un bouton de type "Acheter".
8) Adresse du compte à créditer
<input name="business" type="hidden" value="votre_emailtest_biz@domaine" />
Très important, l'adresse email du compte PayPal à créditer. Pour les tests, mettez l'adresse virtuel du compte Seller.
9) Nom du produit ou service vendu
<input name="item_name" type="hidden" value="Nom de votre produit" />
Attention avec les accents et l'encodage, des fois cela ne passe pas très bien et le problème d'encodage s'affiche sur la facture PayPal ...
10) Supprimer la demande de note
<input name="no_note" type="hidden" value="1" />
Par défaut, PayPal demande aux acheteurs d'ajouter un commentaire lors de la transaction. En spécifiant ce paramètre, la boite ne s'affichera plus.
11) Langue par défaut
<input name="lc" type="hidden" value="FR" />
12) Paramètre pour le bouton
<input name="bn" type="hidden" value="PP-BuyNowBF" />
13) Paramètre personnalisé pour le traitement du paiement sur notre site
<input name="custom" type="hidden" value="ID_ACHETEUR" />
Ce paramètre est très important car il va nous permettre de donner l'identifiant du membre qui effectue la transaction.
Lorsque l'on voudra traiter le paiement, nous pourrons récupérer ce paramètre pour ensuite créditer son compte ou préparer la livraison du produit acheté ...
14) Bouton de validation du formulaire
<input name="submit" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynow_LG.gif" type="image" /><img src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" border="0" alt="" width="1" height="1" />
Il est préférable de laisser l'URL du bouton en provenance de Paypal pour faire gage de confiance, et permettre de garder des boutons à jour ...
A vous de rajouter les paramètres que vous aurez besoin en plus.
Voilà pour la première partie de ce tutorial !
Nous verrons prochainement comment tester notre formulaire et plus important, comment traiter les transactions réussies.
Aucun support ne sera fourni en commentaire. Si vous avez des problèmes ou questions, merci de les poser dans le topic dédié au tutorial.
A voir aussi sur le même sujet:
Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:
Compte la Ferme du WebIdentifiez-vousInscrivez-vous |
Compte Facebook![]() |
Compte Twitter![]() |