IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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>
warning Attention, il vous faudra créer le dossier log dans votre nouvelle application web.

II-C-3. Section System.Web

warning 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.

Toutes ces informations sont indiquées sur la page API Credentials.

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:

  • un nom
  • un prix
  • une taxe
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
 

Valid XHTML 1.0 TransitionalValid CSS!

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.