Comment faire des achats en ligne via l'API PayPal
Date de publication : 23/03/2011.
II. Configuration .Net
II-A. Télécharger l'API PayPal
II-B. Références
II-C. Web.Config
II-C-1. Section configSections
II-C-2. Section log4net
II-C-3. Section System.Web
II-C-4. Paramètres de configuration de l'application
II-D. Création des classes
II-D-1. Produit
II-D-2. Panier
II. Configuration .Net
II-A. Télécharger l'API PayPal
L'API PayPal que nous allons utiliser est SOAP Interface disponible en téléchargement
ici.
II-B. Références
Après installation de l'API, créer une nouvelle application web dans Visual Studio et ajoutez les références aux Librairies suivantes disponibles dans le dossier C:\Program Files\PayPal ASP.NET SDK\bin:
- paypal_base.dll, l'API PayPal
- log4net.dll, Librairie de Log (plus d'information sur Log4net ici)
II-C. Web.Config
II-C-1. Section configSections
Dans la section configSections, ajouter la section suivante:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
|
II-C-2. Section log4net
Ajouter la section log4net suivante dans la web.config:
<log4net>
<linkppender name="PAYPALLOGFILE" type="log4net.Appender.RollingFileAppender">
<file value="log/paypal.aspnet.log" />
<linkppendToFile value="true" />
<encoding value="UTF-8" />
<rollingStyle value="5" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{dd MMM yyyy HH:mm:ss} %-5p [%C{1}] %m%n" />
</layout>
</appender>
<logger name="com.paypal.sdk">
<level value="ALL" />
<linkppender-ref ref="PAYPALLOGFILE" />
</logger>
</log4net>
|
|
Attention, il vous faudra créer le dossier log dans votre nouvelle application web.
|
II-C-3. Section System.Web
|
PayPal accepte seulement les montants ayant le format 00.00. Pour ceux qui ont installé le framework .Net en Français, les montants auront le format 00,00, générant alors l'une des/les erreur(s) suivante(s):
|
- Order total is invalid
- Item total is invalid
- Tax total is invalid
- Item sales tax is invalid
- Item amount is invalid
Pour remédier au problème, il faut ajouter dans la section System.Web la section suivante:
<globalization uiCulture="en" culture="en-CA" />
|
II-C-4. Paramètres de configuration de l'application
Afin de changer facilement les paramètres de connexion au compte PayPal, nous allons les stocker dans les paramètres de l'application.
Voici la liste de paramètres de l'application:
-
Environment: sandbox, sandbox pour les tests, live en production
-
Username: seller_1293373651_biz_api1.carnould.com, nom du vendeur
-
Password: **********, mot de passe du vendeur
-
Signature: ***********************************************, signature de vérification
-
PayPalIdentificationURL: https://sandbox.paypal.com/webscr?cmd=_express-checkout&token={0}, Url d'identification Paypal
-
ReturnURL: http://localhost:1047/PaiementParComptePayPal.aspx?action=return, si l'identification a réussie
-
CancelURL: http://localhost:1047/PaiementParComptePayPal.aspx?action=cancel, si l'identification a échouée
II-D. Création des classes
II-D-1. Produit
Le site web permettra d'acheter des produits, un produit est constitué de:
Soit la classe suivante:
Public Class Produit
Private _nom As String
Public Property Nom As String
Get
Return _nom
End Get
Set (ByVal value As String )
_nom = value
End Set
End Property
Private _prix As Decimal
Public Property Prix As Decimal
Get
Return _prix
End Get
Set (ByVal value As Decimal)
_prix = value
End Set
End Property
Private _taxe As Decimal
Public Property Taxe As Decimal
Get
Return _taxe
End Get
Set (ByVal value As Decimal)
_taxe = value
End Set
End Property
Public Sub New (ByVal nom As String , ByVal prix As Decimal, ByVal taxe As Decimal)
Me. Nom = nom
Me. Prix = prix
Me. Taxe = taxe
End Sub
End Class
|
II-D-2. Panier
Les produits sont stockés dans un panier contenant une liste de produits. Un panier permet de calculer le montant hors taxes, le montant des taxes et le montant toutes taxes comprises.
Soit la classe suivante:
Public Class Panier
Private _produits As List (Of Produit)
Public Property Produits As List (Of Produit)
Get
Return _produits
End Get
Set (ByVal value As List (Of Produit))
_produits = value
End Set
End Property
Public Sub New ()
Produits = New List (Of Produit)
End Sub
Public Sub New (ByVal ParamArray produits () As Produit)
Me. New ()
For Each prd As Produit In produits
Me. Produits . Add (prd)
Next
End Sub
Public Function GetMontantHT () As Decimal
Dim result As Decimal = 0
For Each produit As Produit In Produits
result + = produit. Prix
Next
Return result
End Function
Public Function GetMontantTaxe () As Decimal
Dim result As Decimal = 0
For Each produit As Produit In Produits
result + = produit. Taxe
Next
Return result
End Function
Public Function GetMontantTTC () As Decimal
Return GetMontantHT () + GetMontantTaxe ()
End Function
End Class
|
Copyright © 2011 Cédric Arnould.
Aucune reproduction, même partielle, ne peut être faite
de ce site ni de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à
trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.