Paypal Sécurisé
Paypal Sécurisé
Paypal Sécurisé
Accepterles paiements
en ligne avecPAYPAL
Sachantque lesventessurinternetreprésententpourl'année2006plus
d'euros
dedouzemilliards pourplusdecentmillions ll est
detransactions.
aiséde penserque pourlescommerçants celareprésenteunevéritable
aubaine.Pourles développeurs celase traduitpar une explosiondes
demandes d'unmoyende paiementparcartebancaire.
d'intégration
ment que vous allez mettre en place. Pour cela
Cetarticleexplique: Cequ'il faut savoir: PAYPAL vous propose :
. L ' e n v i r o n n e m e ndt e t r a v a i lS A N D B O X . . Connaître les basesdu PHP.
. C o m m e n t s é c u r i s e rs o n s y s t è m ed e p a i e m e n t . Posséderun site avec panier. . Paiement par email,
. Posséderun compte sur la plate-forme SAND- . Paiement sur site marchand,
e t l e s é c h a n g e sa v e c l e s e r v e u rs é c u r i s é .
. Comment installer PAYPALdans une interface B O Xp o u r l e d é v e l o p p e m e n t . . Paiement sur site marchand Pro (Etats-
existante. . Posséder un compte PAYPALpour la mise en Unis uniquement),
. Comment exploiter la réponse du serveur (NlP) production. . Passerelle Payflow,
. Acceptez PayPal.
pour mettre à jour le statut des commandes'
Niveaude difficulté rer un bien ou un service en ligne. Il existe propose PAYPAL à I'adresse suivante : hnps://
sur le marché d'innombrables solutions de w w w.p ay pal. com/ cgi-b in / w eb scr?cm d : -p rof ile-
3
paiement en ligne, la plupart éditées par les comparison. Une fois que vous avez choisie votre
banques elles-mêmes. Cependant il existe solution, vous pouvez penser aux outils qui vont
ous allez voir comment utiliser PAY- quelques acteurs historiques dont le cæur de vous permettre de réaliser votre intégration.
PAL pour proposer un paiement en métier est la transaction électronique. C'est
ligne. Pour cela nous aborderonsles le cas de PAYPAL qui â commencé par pro- Quelsoutils sont mis
solutions de paiement PAYPAL au travers du poser des transferts d'argent sans saisie des à la dispositiondesdéveloppeurs
serveur sécurisé PAYPAL SANDBOX, finale- informations de carte bancaire par le biais PAYPALa pris le soinde bien documenterses
ment et après avoir abordé la question de la de sites de e-commerce partenaires, puis solutions,aussipeu importela solutionde paie
sécurité, nous verrons en detail comment in- à évoluer vers un paiement CB plus classique. ment choisie,vous trouverezfacilement la docu-
tégrer une solution de paiement électronique ceci fait PAYPAL était prêt à rentrer par la mentation qui s'yrapporte.Ceci dit, vouspouvez
à une interface existante. grande porte sur le marché des solutions de tout aussibien vousreporter aux liensci-après.
paiement en ligne avec des solutions homogè-
nes et d'une simplicité exemplaire en terme . Paiementparemail:https://www.paypal.com/
Pourquoiutiliser
une solutionde paiementen ligne d'utilisation. cgi bin/ webscr?cmd : -e mail-pay ments-ouer-
Il y a plusieurstrèsbonnesraisonsd'utiliser uiew-outside,
la plus Le Choixd'une solution PAYPAL . Paiement sur site marchand : https://
un moyende paiementélectronique,
importante de ces raisons reste néanmoins PAYPAL proposeplusieurssolutionspour ef- w ww.payp al. com/ cgi-bin/webscr? cmd: -
fectuer du transfert d'argent, ainsi, avant de p -
w stand ard- ouer uiew -out side,
de favoriser I'achat impulsif. Mais cela ne
choisir la méthode que vous allez utiliser pour . PasserellePayflow: https://www.paypal.com/
s'arrêtepas là, cela constitue égalementun
avantagepour le commerçant qui sait quasi- effectuer vos transactions depuis votre site, cmd : -p ayf low-gateway -ouer -
cgi-bin/ webscrT
ment en temps réel si une commande a été vous devez deià determiner le mode de règle- uieu-outside.
payéeou non, ce qui lui permet, par exemple,
de traiter les commandespayéesen priorité,
cela réduit égalementde façon considérable
le temps passéau traitement des paiements,
pas de bordereaude remisede chèquesà réa-
liser,pasde problème de solvabilité.Bien sur
il existedes casde fraude mais ils restent mi-
noritaires au vu du nombre de transactions.
06/2007
. Accepter Paypal : https://www.pctypal.com/ Copier/Colleq mais aussi une API de paie- deueloper.paypal.com/ Une fois votre compte
cgi b i n/ w ebscr7c m d - _a d dit i o n a I -p (ty m ent - ment très bien faite et documentée oour créé, vous accédez à un menu. Dans un pre-
oueruiew-outside. les développeurs expérimentés. mier temps commencez par créer deux comp-
tes de test, pour cela cliquez sur TestAccount
Pour mettre en ceuvre I'une de ces solutions, Voici qui constitue les principales questions puis sur Create Test Accounr, un formulaire
vous avez besoin d'un seul outil qui va vous que vous devez vous poser avant de choistr une semblable au formulaire de création de comp-
servir pour toutes les tester. Cet outil magique solution. te sur PAYPAL vous permet de créer un comp-
c'est le serveur sécurisé SANDBOX. Décou- te vendeur (seller) ou acheteur (buyer). Créez
vronssansattendre ce formidable outil. Le ser- CommentparamétrerSANDBOX
? un compte qui va représenter le marchand
veur SANDBOX ne constitue pas pour autant Voilà donc le moment d'aborder le vif du (seller) et un compte qui va représenter I'uti-
Leserveursécurisé
PAYPALSANDBOX lo variablequi déterminel'urlquiva réceptionner
Listing 2. Renseignez la N.l.P.
PAYPAL proposc pour les utilisateurs qui php
'cde id='
souhaitent utiliser leurs solutions de paie- $chaine encode = $ sESSroN,'client"cde id' ;
' ' h i d d e n \ ' n a m e = '' u r I _ n o t i f y v value= rmon_site.com?'
ment, une interface très bien faite : SAND- $contenu .= , input type=
B O X , d i s p o n i b l e à I ' a d r e s s es u i v a n t e : h t t p s : . urlencode $chaine encode, '\' '
;
//deueloper.paypal.com/.
Ce serveur sécurisé
estune copie conforme du serveur d'exploi-
tation à la difTèrence clue tout ce qui s'y passe unebouclepourrenseigner
Listing 3. Effectuez leschampsdu panier
estfictif : comptcs particuliers, comptes mar- ' :php
depaiement.
Le choix d'une solution parmi celles propo-
séespar PAYPAL constitue la première étape
à réaliserlorsque vous avez décidé d'intégrer maintenantlesdonnéesrelotivesau client
Listing 4. Renseignez
ES PAYPAL à votre site marchand. Pour bien '. ,php
te choisir la solution qui vous convient, vous $contenu .= ' input type=','hiddenv name= 'addressl\' value= ".$ SESSI0N
1l- devez tenir compte de plusieurs éléments. tclientt'adresset,.t\t ti
Aussi il vous faudra apporter une réponse $contenu .= ' input type= rhiddenV name= taddress2\t value= r\r 'r,'
à cesquestions : $contenu .= ' input type="hiddenV name= 'zipV value=,," $ SESSION
'clientt 'cp' t\t .t
r , . . , ;
. $contenu .= ' input type=r,'hidden\' n a m e = :' c i t y \ ' '
n/ Quel genre d'article allez vous vendre ? value=" I SESSION
?r- PAYPAL propose des solutions pour les i'clientr ,'vil-le' . f'\',';
abonnementset les dons. $contenu .= ' input type= 'hidden\' name= 'country\' value= 'FR\' '
;
:// .
Quel est le poids de votre catalogue ? PAY- $contenu ,= '- input type= 'hidden\' name=,'first name\' value=,,".$ SESSION
PAL propose des boutons ACHAT IMME- :tclientt t p r e n o m t. t \ t . t ;
DIAT pour un seul article, un panier dé- ':input type= 'hiddenV name='tlast nameV value=\"
$contenu .= $ SESSION
n/ porté pour ceux qui ne souhaitent pas ou 'clientt tnom' . t\trt;
?r- ne peuvent pas avoir de panier sur leur si- $contenu .=' input type='hidden\' name='emaiL\' value="' $ SESSION
te. Et I'export du panier vers PAYPAL 'cfientt'emailt, .'\'';
p o u r l e sp l u s a g u é r r i s .
. Souhaitez-vousutiliser une base de don-
nées? Paypal propose La Notification Ins-
tantanéede Paiement pour tenir à jour sa
basede données sur le statut de paiement
descommandes.
.
Quel est votre niveau de compétence ?
PAYPAL propose des solutions du type
www.phpsolmag.org
Outils
vendeur fbusiness) pour prendre en compte le voir vous connecter avec les identifiants de con- Sécuriserles données
choix de votre solution de paiement. nexion enregistrés lors de la création du compte et les échangesserveur
test. Une fois cette étape effectué rendez vous di- Lorsque vous manipulez des informations
Pour paramétrer le compte du vendeur, sélec-
rectement dans I'onglet Outils Marchands. C'est sensibles, il est de votre intérêt de veiller
tionnez le compte business puis cliquez sur le
ici que vous allez paramétrer le compte vendeur à les protéger correctement. Pourtant est-ce
bouton Enter SandboxTest Slte pour ouvrir une
en fonction de la solution retenue. vraiment le cas ? Vous allez voir quelques as-
nouvelle fenêtre dans laquelle vous allez pou-
tuces faciles à mettre en ceuvre et qui pour-
ront vous éviter bien des tracas. Nous verlons
emailquevousavezutilisélorsde la créationde
correspondà l'odresse
Listing 6. Le comptebusiness également comment sécuriser les échanges
votre compte PAYPAL
avec PAYPAL.
. .'php
'".input type=\ 'hiddenV n a m e = \ "b u s i n e s s \
' value= ll ' Quelques principes
$contenu . =
t \'>' ; pour sécuriserlesdonnéessensibles
$moncompte .
PAYPAL en tant que pionnier dans le paie-
ment électronique s'attache depuis de nom-
'. lphp
variables dans un fichier PHP. Mais at-
tention de ne pas nommer vos-fichiers
$header . = "POST /cgi-bin,/webscr H T T P , / 1' 0 \ r \ ' n " ;
application/x-www-form-urlencoded' r' n"; avec une extension en .INC [commu-
$header .= "content-Type:
. 8 t r l e n ( $ r e q ) . rriar,n'ir\nrrl nément employée pour identifier des fi-
$header .= "conLent-Length: "
30); chiers inclus.) Préférez I'extension PHP
$fp = fsockopen ('www.sandbox.paypal.com', BO, $errno, $errstr,
(!Sfp) i
en nommant vos fichiers inclus de la
if
sorte : mon-fichier.inc.php. En effet les fi-
echo Serrno' :' $errstr;
chiers .inc sont apparentés à des fichiers
i else i
($fP,
texte et seront donc visibles depuis un
fPuts $header $req);
navigateur,
// the bodY data
read
. Ne stockez jamais des informations sen-
Sres = t t;
sibles à la racine de votre site web' Uti-
$headerdone = false;
(!feof($fp))
liser plutôt un dossier externe au dos-
rhile {
sier web. Si vous n'avez pas accès à la ra-
$line = fgets (gfp, 1024);
(strq($Iine, il\r\n") == 0) l cine, dans le cas d'un hébergement mu-
if
des header
tualisé par exemple, utiliser un .htaccess
// lecture
pour interdire I'accèsau dossier conte-
$headerdone = true;
($headerdone) nant les informations sensibles, ou à dé-
) elseif, {
des entêtes, lecture du contenu faut placez un fichier vide et nommez le
// après Iecture
index.html,
$res .= gline;
. Accordez les droits en lecture seule sur les
fichiers qui contiennent des données sen-
sibles depuis votre client FTP ou en ligne
de commande chmod o-\^,x /home/www/
mon fich ie r. PhP,
06/2007
. Si vous devez faire appel à un exécuta- réponse avec votre jeton d'identité. Si la chaî- Utiliserla Notification
ble pour générer un bouton de paiement, ne codée correspond, PAYPAL retourne alors lnstantanéede Paiement
]S veillez aux droits sur ce fichier de façon à votre serveur une confirmation qui contient Pour utiliser la notification instantanée de
lr à ne laisser que les droits au propriétaire o u T N V A L I DÀ
les mots clefs : vERTFTED . .. -.r- paiement vous devez paramétrer votre interfa-
le du fichier depuis votre client FTP préféré ment vous devez répondre en envoyant une ce PAYPAL pour qu'elle accepte la notification;
J- ou en ligne de commande : chmod u+rwx, réponse 200 oK pour fermer la transaction Vous allez voir maintenant quel paramétrage
l - go-rwx /home/executable. sh. et éviter I'envoi de la prochaine notification. est nécessaire pour inclure cette fonctionnalité
IS Tânt que PAYPAL ne reçoit pas cette répon- au coeur de votre projet.
]S Le respect de ces différents points simples se 200, renverra de nouveau une notification Pour cela rendez vous sur I'interface de
à mettre en oeuvre garantit une sécurité mi- pendant quatre jours. test de PAYPAL : SANDBOX dont vous
nimum. Vous pouvez bien entendu met-
tre en placedes sytèmes de contrôle supplé- Listing 1O.ExploitezlesdonnéesquePAYPAL
vousrenvoie
mentâtres.
,.php
www.phpsolmag.org
Outils
M o n c o m p t ed e v o t r e i n t e r f à c c . P u i s c h o i s i s - À ce stade votre interfàce est correctement domaine sur Internet : classes, scripts prèts
sez I'crnglet : Préférences.Puis dans le rnenu : paramétrée pour utiliser la Notilicution Instan- à I'emplor ...
de
PréJérentesdes uentes,choisissez PréJérenccs tunéede puiement.
l n s t a l l e ru n e s o l u t i o n
d e p a i e m e n tc o m p l è t e
sondboxrestEnvironmenr Afin d'illustrer ce que vous venez de lire, je
W
vous proposc d'abordcr un caspratique. Ainsi
vous pourrez vous farniliariser avec lcs diffé-
rentes étapcs nécessairespour intégrer fàcile-
Welcome to the Sandbox Test Environment
m e n t u n c s o l u t i o n d e p a i e m e n t P A Y P A I . .P o u r
Need an account? Sign up now to access
payPal'5 r é a l i s e rc e s c r i p t , v o u s d e v e z d é j à p o s s é d e ru n e
Sandbox Test Environment.
boutiquc avec un systèmc de panier (session'
r À c c e ! s ' ; Ê l u a b l ed ê v É l c p É r. e s c u r c ê t
r C r ê â t ê a c c r i u n t st o t ê t t ' i c u ' F à ' i t Ë l I n t ê r f ô c Ê b a s c d e d o n n é e s . . . ) . V o u s d e v c z -é g a l e m c n t
r À c c ê s 5e m a r l S e n tt c ' i c u . t Ê s t a c c c u n t t
posséder un comptc sur la plateftlrmc de test
r l ' l a n Ê g ei F I c ' e d e n t t a l sf c ' t c u , t e s t â c c c u n t t
SANDBOX.
SionUo Now
Figure 2. L'interfacede visuolisation: Cetteinterface vous permet de visualiserles comptes de test créés mations relatives à votre client : Nom, adresse,
06/2007
In-
code postal, ville ... Vous pouvez ainsi pré- . xclici< : Pour un bouton Acheter main- . o r : an f i I v .x ':.O\ u a n t i t é de I'article x,
US remplir les formulaires de creation de compte tenant, Dons cru Abonncments, ' shipping - x : Cout de livraison pour I'arti-
-rx ou de facturation. Dans tout les cas, et comme . cart : Pour un bouton de panier d'achat, cle x,
CC pour le panicr, vous aurez à renseigner des va- . ext-enter : Pré-rempli le formulaire . rax x : La taxe sur la valeur ajoutée pour
'ts I ' a r t i c l ex .
riables obligatoires dont vous trouverez le dé- d ' i n s c r i p t i o n â u c o m p t e P a y P a l .D a n s c e
tail dans les tableaux des données relatives aux cas la variable qui détermine I'utilisation
clients (Tableau 2), et les données relatives au des données externes : redirect cmd est Retrouvez I'ensemble de des valeurs relatives
paramétrage (Tâbleau 3). requls. au panier au Tableau I et un exemple d'utilisa-
tion au Listing 3.
te
Transformer ces données Indiquez maintenant à PAYPAL que vous uti- À ce stade il ne vous manque que les infor-
S1 en variables exploitables par PAYPAL lisez votre panier, en renseignant la variable mations relatives au client. Dans cette exemple
C_ Pour qu'elles soient exploitées par PAYPAL, tou- upload avec la valeur r. Reportez vous au Lis- nous avons choisi de pré-remplir le formulaire
f-
tes ces données brutes doivent d'une part avoir ting I pour un exemple d'utilisation de la va- d'inscription. Pour autoriser le pré-remplissage
1r un nom spécifique et d'autre part une valeur for- riable cvo. vous devez spécifier la variable cmd avec la va-
te matée. Nous allons voir maintenant quelles sont P u i s s p é c i f i e z I ' a d r e s s eq u i v a ê t r e u t i l i s é e leur ext enter comme suit :
1, ces spécifications pour chacune des données pour envoyer la notification instantanée de
It paiement à I'aide de la variable notl-f y-ur1. (\ a Ir r ny unul i r ' l r " l e nI '
obligatoires. Bien sur et comme précédemmcnt t tL Jrr r! n e = r r h name-"Cmd"
tes ces données et ce en fonction de la solution url doivent obligatoirement être encodés en
que vous aurez choisie. Commençons donc par hexadécimal, vous pouvez pour cela utiliser mais aussidéclarer la variable redirect cmd
déterminer la solution la plus élaborée, qui con- la fonction PHP urtencode (l . Voyez le Lis- comme cl-apres :
'5
siste à envoyer chaque ligne du panier avec le to- I"ing7. Cette variable est facultative si vous
't
tal par ligne, puis le sous-total hors frais de port avez paramètré la N.l.P dans votre interface <i nnrf tvne:"hi ddeqI nSpg="redirect cmd"
t-
et TTC, puis le total du panier. Nous utiliserons de PAYPAL. Cette valeur est disponible au value=" xclick">
l-
également le pré-remplissage des formulaires et Tableau 3. Pour les données relatives au pa-
la notification instantanée de paiement. Si vous nier d'achat, vous allez effectuer une boucle Attention redirect _ cmd ne peut avoir
avez déjà paramètré votre interface SANDBOX afin de renseigner chaque ligne de votre pa- qu'une seule et unique valeur : xcl-ick. Ces
passezà la suite sinon c'est le moment de le faire. nier. Les variables à renseigner sont les sui- deux variables sont nécessairespour utili-
Commencez par déterminer la variable cuo qui vantes : ser le pré-remplissage des formulaires. Une
doit informer PAYPAL du choix de la solution fois que vous avez spécifié ces deux varia-
que vous avez retenu. Cette variable peut pren- . amount x : P r i x d e I ' a r t i c l ex , bles, renseignez les variables du client :
dre trois valeurs : . rtem n a m e x : N o m d e I ' a r t i c l ex , adressel, adresse2, zip, city, country, firstname,
amount x x
Prixde I'article Oui
address1 à I'adresse
desdeuxchampsdestinés
Premier Alphanumérique 100
address-2 en complément
Secondchampd'adresse Alphanumérique 100
city Ville Alphanumérique 40
I
www.phpsolmag.org tÎonsl rn
l u s t - n t t n r c , a m t r i l . I - ' c - r ' r s c r n b lccl c s v a r i a h k ' s tions clt' flrcttrrltticln, \'()us l)()rr\/ez rt.r-rst'i- e( ) r r ( ' c t ( ' n t c n t r c n s c i g n c , e( ' s i n i r t r n t a t i r t r - r sr - t r '
cle pré-rcmplissagc sont clisponiblcs rrtr Tu- g n t ' r l a v l rr i l r b l t ' a r l dr e .s : r (,v.' L rl'1e (lLlI ll\r('C s ' a f l ' i c h c r o n t p r r s .J o r - r t c s l e s c l r n n c t ' s l l t t t t ' s -
bleau 2, retrouvcz- égrrlcrncnt atr Listing 4 l i r v a l c r - r rI v a P c r m c t t r t ' r l ' r Ir l ' i tl t t ' r l t ' ' i r rl t ' r s l ri r i ' s s t l n t r t ' p r i s c s a u T a b l t - a r r- { . \ / o t r s t r o r r -
Lln excmlllc d'utilisation clc'cc.svariablcs. m r l t i ( ) n s s a n s p o s s i b il i t t l . 1 , 'l t ' ' n r ( \ ( l i if ( ' r . . \ t - \ ' ( ' r c z a t r L i s t i r - r g5 r r n c r c m p l e c l ' r . r t i l i s a t i o r - t
Afin c l ' e v i t er l a m o c l i f i c a t i o n c l c s i n f i r r m a - t e n t i o r - rc a r s i t r n r ' h u l r - r 1l 't ,( l \ ('\\il i t t' lt't'st tlc ct'ttc vrrriablc'.
lrltt
addressoverride L a d r e s s ei n d i q u é d a n s l e sv a r i a b l e sd e p r é - r e m p l i s s a g ep r e n d l e p a s s u r l e sv a r i a b l e ss t o c - Non
k é e s .L e c l i e n t v o i t I ' a d r e s s em a i s n e p e u t l a m o d i f i e r
currency_code M o n n a i e d u p a i e m e n t ,d é t e r m i n e l a d e v i s ep o u r l e s v a r i a b l e sa m o u n t , s h i p p i n g ,s h i p -
ping2 et tax. Lavaleurpar défaut est le dollard US
( E U Rp o u r e u r o s )
Tabfeau 5. Liensincontournables
i_
zo phpsolutions 06/2007
Outils
. $post_string = " ;
php
foreach , $ P O S Ta s $ f i e l - d = $ v a l u e ' '
--- La versTon origtna)e de cette clld's-ee a ére e:.i:: re
t'/
$this- ipn data "Sfield" = $val-ue;
--- par Nllcalt Carr-rc-k . Eiie e'"f cijspoillb-le sur -ie si te
/ /
--- con: $post string .= Sfietd.'=' .urlencodel$vaIue
i i kt.tp : / /www..njcahcarrjck'
de Producticrl
return false;
i/ url du serveur
='https : / /www' paypa-l' ccnt'/
/ i Sthts->paypai-ur)
, // --- ccnnexio,r étab-ire
cqi-bin/webscr' ;
de test else
ii uri du serveur
'httPs --- enyoi oe-s oolnées à Pa1,pa-l
paypal-url = : / /www. sandbox ' paypal ' com/ .i,,,
$this-:
$txt = "POST $ur1 parsed path HTTP/I'1 r n"
fr/cqt-brn/ webscr';
= r\n "
$this- iPn-Iog true;
. "Content-length: ".strleni$post-stringr." r n"
ipn_resPonse = ";
Sthis-
pa r 1e . "Connection: close'r n r,n"
i / adresse du conpte bu-slnes'" à rentplacer
r',r'n r'n";
. $post string
compte
= 'adresse-email0 fputs lSfp, $txtr ;
$this- emait compte
while, ! feof $fp :
comPte-PaYPaI . com' ;
Sthis- 'l-pn-response .= fgets l$fp' i024: ;
//vafeurs par défaut (cf doc FaypaJ)
'cmd' '-cart'
$this- add field i , I ;
'1') fclose $fP, ,'
Sthis- add field i'uPload', ;
'currency-code' 'EUR'
$this- 'add field i , ' ;
'IS0-8859-1 ' r --- t-ransactron est acceptée
$this- 'add field i 'charset' , '' /i la
--- envoj cles infornations à PaypaJ Sth j.s- 1og-ipn-results ifalser ,'
i/
return false;
function submit_paypal_Post() r
'n";
echo ".html-
echo
' form method="post" name="form" action="' if i$successl $texte .= "0K!:,n";
'.$this-)'fast-error
"''r ' "'n";
else $texte .= 'Erreur:
Sthis-'paypal-url.
val-ue="t $val-ue,
r'rr r; $texte .= "Skey=$va]ue, ";
06/2007
221 olutÎons
I
I
I
I
i
I
I
I
I
5. Mise à jours 4. Paypalretourne utiliser PAYPAL est un peu plus cher car il vous
de votre base VERIFIEDou INVALID en coutera entre 1,9% et2,90/osur chaque tran-
de donnees saction en fonction du chiffre d'affaire généré.
Pour plus d'informations sur les commissions
référez vous à la page d'information de PAY-
PAL à ce sujet : hnpsy'/www.paypal.con/rg,
b in/w ebscr?cmd : -w p-stan d ard-pr i c in g-outsi d e.
Figure 3. Fonctionnement de lo NIP: Ceschéma montre comment fonctionne lo Notification lnstantanée
Nous pouvons également regretter le manque
depaiement
de clarté de I'interface d'accueil du serveur de
Choix de la méthode votre jeton d'identification et la variable cuo. paiement, surtout pour les utilisateurs qui sou-
de transport des données Voyez comme exemple à ce sujet le Listing 8. haitent payer par CB.
Le serveur sécuriséPAYPAL n'accepteque les Envoyer la chaîne de caractère ainsi obtenu
requêtesde type POST c'està dire desdonnées au serveur sécurisé PAYPAL. Un exemple de classe PHP
issuesd'un formulaire et qui n'apparaissentpas Attention car vous atrez à changer I'url con- pour gérer les échangesavecPAYPAL
dans I'url. Pour envoyerune requête de type tenue dans la fonction f sockopen O lors du Avec ces réferences et ces exemples, vous pos-
POSTvous pouvezutiliser un formulaire com- passâgeen production de votre application. Le sédez toutes les compétences nécessaires pour
me dans les listings précédents,ce qui marche listing 9 illustre ces propos. intégrer facilement une solution de paiement
trèsbien, mais lorsquevous affichez la source À ce stade PAYPAL va authentifier le jeton PAYPAL à votre site. Vous pouvez décider
d'un tel formulaire, vous pouvezconstaterque d'identité et va vous retourner une chaîne de de coder I'ensemble de l'application, ou vous
lesdonnéessont visibles;celaestgênantcar par- caractères qui va vous informer d'une part du pouvez utiliser I'une des nombreuses classes
mi cesdonnéesil y a votre adresseemail qui cor- statut du paiement et d'autres part sur le code Open Sources disponibles sur Internet. En
respondà votre compte chez PAYPAL.Réferez d'erreur éventuellement généré. exemple et pour conclure voici une classe PHP
vousau Listing 6 pour déclarercettevariable. qui permet de gérer les échanges avec le serveur
Une fois la variablegmon_compte interprétée, Exploiterlesdonnéespour sécurisé PAYPAL. Cette classe vous permettra
votre identifiant de compte seravisible. C'est mettre à jour un statut de paiement également de réceptionner et de traiter la noti-
pourquoiil estsaged'envoyerla requêtede type LorsquePAYPALreçoitvotreréponseet après fication instantanée de paiement. Vous trouve-
POSTdirectement au serveur sansafficher le avoir analysé votre jeton d'identité; il vous re- rez I'itégralité de cette classeau Listing I 1.
formulaire.Réferezvous au Listing 7 pour un tourne une chaîne de caractères qui contient les
exemple.Il suffit de poster le formulaire au mots clefs : TNVALTDen cas d'échec du paiement (onclusion
chargementde la page: et vERrFrEo si le paiement a été accepté. Il ne Facile, rapide et efficace sont des adjectifs qui
vous reste plus qu'à mettre à jour le statut de vo résume assez bien les solutions de paiement
(body onload="document. form. submit () ; "> tre commande pour indiquer que le paiement à proposées par PAYPAL. Facile parce que certai-
été accepté. Retrouvez ci-après un exemple de nes de leurs solutions peuvent êtres utilisées par
Ceci représente une solution, vous pouvez code qui exploite la réponse de PAYPAL pour des débutants avec quelques notions en langage
bien entendu en utiliser une autre, I'idée étant mettre à jour la base de données. PAYPAL vous HTML. Rapide parce que vous pouvez intégrer
de ne pas afficher les informations qui vont permet également de récupérer des informa- une solution complète et évoluée en quelques
être envoyées à PAYPAL. Vous trouverez au tions liées à la transaction qui vient d'être effec- minutes et efficace car avec son niveau d'exi-
Listing 7 un exemple pour poster un formu- tuée : les nom et prénom du client, le montant gence concernant la sécurité, PAYPAL obtient
laire sans I'afficher. de la transaction et surtout I'identifiant unique les taux les plus bas en matière de fraude, et as-
de la commande. Afin d'exploiter les données sure une disponibilité de plus de 99o/o.
de la réponsede PAYPAT
Récupération de retour, vous pouvez vous réferé au Listing
Une fois que vous avez envoyé les données 10 qui est un exemple qui utilise les chaînes de
à PAYPALet après le processusde paiement, Du v E R r F r E D .
c a r a c t è r e sT N V A L T o BRISSAUD
STEPHANE
PAYPALvous envoie la Notification lnstanta- Auteur de plusieurs ouvrages traitant de I'utilisa-
néede Paiement,Cette réponse est envoyéede Lesavantageset les tion du PHP,dont l'utilisation des solutions et com-
manièreasynchronesur la pageque vous avez inconvénientsde PAYPAh posants Open Sources,ce directeur technique de 36
spécifiélors de la configuration de I'l.P.N dans PAYPAL propose une solution globale à ex- ons est également impliqué dons de nombreux pro-
I'interfacede PAYPAL,vous devezalors lui re- ploiter selonvos besoins,la solution est rapide jets et anime des formations sur l'implantation de
tourner cette réponsesansoublier de rajouter et facile à mettre en ceuvre,ce qui constitue solutions libres.
www.phpsolmag.org