Ajouter le paiement PayPal dans Flex / AIR

le 19 mars 2008 par Julien Lestel

Voici un exemple de code pour ajouter le bouton PayPal “buy now” lors de vos développements Adobe Flex.

paypal flex

voir l’exemple

This movie requires Flash Player 9

Ce code peut être améliorer pour faire un panier à envoyer à paypal en Flex. La méthode employée envoie les données à paypal avec une redirect du bouton “buy now” en utilisant flash.net.URL request. L’exemple est basique, et une gestion complète du panier est un travail plus long…

Voici maintenant les sources :

Du fichier HTML classique pour l’appel à PayPal :

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title>Untitled Document</title>
</head>

<body>
<form action=”https://www.paypal.com/cgi-bin/webscr” method=”post”>
<input type=”hidden” name=”cmd” value=”_xclick”>
<input type=”hidden” name=”business” value=”you@youremail.com”>
<input type=”hidden” name=”item_name” value=”Item Name”>
<input type=”hidden” name=”currency_code” value=”USD”>
<input type=”hidden” name=”amount” value=”0.00″>
<input type=”image” src=”http://www.paypal.com/en_US/i/btn/x-click-but01.gif” name=”submit” alt=”Make payments with PayPal - it’s fast, free and secure!”>
</form>
</body>
</html>

Et voici la partie Flex:

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” >

<mx:Image source=”http://www.paypal.com/en_US/i/btn/x-click-but01.gif” horizontalCenter=”0″ verticalCenter=”0″ click=”makePayment();”/>
<mx:Script>
<![CDATA[
import flash.net.URLRequest
public function makePayment():void{
var url:String = “https://www.paypal.com/cgi-bin/webscr”;
var request:URLRequest = new URLRequest(url);
var variables:URLVariables = new URLVariables();
variables.cmd=”_xclick”;
variables.currency_code=”EUR”;
variables.business=”contact@flex-info.fr”;
variables.item_number = “001″;
variables.item_name = “Donation pour Flex-Info.fr”;
variables.amount= “1.00″;
variables.quantity = 1;
variables.tax = '';
request.data = variables;
request.method = URLRequestMethod.POST;
navigateToURL(request,”_parent”);
}
]]>
</mx:Script>
</mx:Application>

Pour intégrer ce bouton sur une liste de produits :

1) chargez les données des produits depuis un fichier xml et un appel avec HTTPService

2) utilisez le composant “repeater” pour créer vos boutons (et l’affichage des produits)

… et implémentez le tout dans votre panier pour payer avec PayPal !

En espérant que cela aide certains d’entre vous :)
Note : Cette manipulation est valable pour implémenter la plupart des paiements en ligne :)
Source : Flex Community

N'oubliez pas que vous pouvez vous abonner à mon Twitter http://twitter.com/flexinfo ou au flux RSS ;)

1 étoile2 étoiles3 étoiles4 étoiles5 étoiles (1 votes, 5,00 sur 5)
Loading ... Loading ...

12 Commentaires de cet article

  1. jeanphilippe Says:

    salut
    merci pour cet exemple très utile :)

  2. Yann Rouillé Says:

    Salut,

    Très intéressant cet exemple de PayPal! Merci beaucoup.

  3. Arnaud Says:

    Super !
    Merci pour cet exemple.

  4. Florian Says:

    Alors c’est sûr que c’est facile à mettre en place mais ça peut ammener d’autres problèmes dans le cas où l’on veut récupérer le résultat de la transaction pour, par exemple, savoir où livrer un produit acheté par un client.

    A partir du moment où tu veux récupérer le résultat de la transaction , tu perds l’état de l’application car le swf est obligatoirement rechargé lors du passage SWF>Paypal ou Paypal>SWF. Donc il faut trouver un moyen de recharger l’appli dans le même état qu’elle était avant d’être redirigé vers paypal ce qui peut devenir assez difficile à mettre en place suivant la complexité de l’application.

  5. Florian Says:

    C’est vrai que ça à l’air facile à intégrer à première vue, mais cet article n’explique pas la partie la plus délicate à mettre en place, à savoir la récupération du résultat de la requête.

    Lorsqu’on utilise Paypal, on souhaite généralemet savoir comment s’est déroulé la transaction du client sur la page paypal. Par exemple, pour mettre à jour son stock par la suite ou tout simplement récupérer l’adresse de livraison.

    Pour cela, il faut spécifier dans le script , une variable ‘return’ qui indique l’url de retour , à savoir celui du SWF. Le SWF est donc obligatoirement rechargé à un moment ou un autre (soit lors du passage de l’appli à paypal , soit au retour). Le problème est donc que l’état de l’application est perdu et il faut mettre en place un système permettant de récupérer cet état au moment du retour ce qui peut être difficile suivant la complexité de l’application. (Par exemple, pour un appli qui contient plusieurs onglets, reafficher ces onglets, ainsi que leur contenu)

  6. Florian Says:

    > Désolé pour le commentaire en trop. Ma machine a planté au moment de poster le 1er commentaire et je pensais qu’il n’était pas passé

  7. Manuel Says:

    Bonjour Julien,

    Nous avons intégré sur 2 sites le paiement sans passer par l’ouverture de fenêtre ou page html, ce qui est plus simple et rassurant pour l’internaute. Nous allons essayer de prendre le temps de faire un article sur http://www.matsiya.fr ;)
    ++

  8. Julien Says:

    Ok, n’hésitez pas à nous tenir au courant :)

  9. MrBark Says:

    hello !c ce code peut etre ameliorer pour faire un panier a envoyer a paypal en flex :) précision indispensable ? les parenthèsese n disent parfois davantage que toutl e reste :) merci pour ce billlet intéressant, au plaisir de vou lire !

  10. nourrain Says:

    salut,

    en effet, ca serait sympa de savoir comment envoyer une requête “panier paypal” sans ouvrir une nouvelle fenêtre. Juste en envoyant les données chez Paypal mais en restant sur la page en cours.

    Merci

    Monsieur Nourrain

  11. Goela Says:

    Bonjour,

    Je souhaite simplement apporter quelques précisions sur l’intégration d’un process de paiement dans un environnement flash/flex.

    Pour l’instant, la seule façon pour le client de ne pas quitter l’environnement du site est la communication entre serveurs (votre serveur et celui du tiers de confiance).

    L’API paypal (express) ne le permet pas pour l’instant car le client quitte à un moment donné l’environnement.

    Certains tiers de confiance propose le service de communication entre serveurs mais c’est plus onéreux que le service traditionnel.

    Ex : PayBox Services Direct.

    Bien à vous
    Goela

  12. Julien Lestel Says:

    Ok bien noté. Merci Goela pour l’info :)

1 Trackbacks de cet artice

  1. Creation » Blog Archive » Ajouter le paiement PayPal dans Flex / AIR Says:

    [...] http://www.flex-info.fr/ajouter-le-paiement-paypal-dans-flex-air/20080319/ [...]

Rédiger un commentaire

Subscriptions

Sondage

Préférez-vous travailler avec l'ancien Flex Builder ou le nouveau Flash Builder ?

  • Flex Builder (50,0%, 8 Votes)
  • Flash Builder (31,0%, 5 Votes)
  • Aucun des 2 ! (19,0%, 3 Votes)

Nombre de votants: 16

Loading ... Loading ...

Twitter

Mugsho