<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Le Blog de Guillaume Barillot, D&#233;veloppeur Web, applications agiles et Ruby on Rails</title>
    <link>http://www.guillaume-barillot.com</link>
    <description>Le Blog de Guillaume Barillot, D&#233;veloppeur Freelance dans le domaine du Web et des applications agiles. </description>
    <item>
      <pubDate>Wed, 02 Nov 2011 23:23:16 +0100</pubDate>
      <title>Un premier avis sur Spree (plateforme Ecommerce pour Ruby on Rails)</title>
      <link>http://www.guillaume-barillot.com/blog/fr/2011/11/02/228-un-premier-avis-sur-spree-plateforme-ecommerce-pour-ruby-on-rails</link>
      <description>&lt;p&gt;Depuis bient&#244;t trois ans que je pratique quotidiennement Ruby on Rails, il est toujours rest&#233; pour moi une probl&#233;matique encore non r&#233;solue : &quot;et pour le E-Commerce, on fait comment ?&quot;. Je dois bien le dire, pour l'instant : &quot;je fais comme je peux&quot;. En clair : Prestashop pour les grosses boutiques, et Rails maison pour les boutiques plus modestes mais avec des besoins tr&#232;s particuliers (produits sur mesures, syst&#232;me de promo. avanc&#233;...). Quoi qu'il en soit, la conclusion -&#224; ce jour- n'a pas chang&#233; : IL FAUT UN MAGENTO EN RAILS.&lt;/p&gt;
&lt;p&gt;J'ai bien essay&#233; &lt;a href='http://www.forgeos.com/'&gt;ForgeOS&lt;/a&gt;, en son temps, mais il s'est depuis perdu dans une plateforme beaucoup trop g&#233;n&#233;raliste. Je cherche un sabre laser du E-Commerce, pas un couteau Suisse. Il y a eu aussi &lt;a href='http://code.google.com/p/substruct/'&gt;substruct&lt;/a&gt;... mais l&#224; encore, c'est plus &quot;un CMS avec un panier&quot; qu'autre chose, peu de monde semble d'ailleurs avoir suivi.&lt;/p&gt;
&lt;p&gt;Nous voila donc fin 2011, et j'apprends que &lt;a href='http://spreecommerce.com/'&gt;Spree&lt;/a&gt; vient de lever 1,5 Million USD, le site Web est tout beau tout neuf et il semble y avoir une communaut&#233; derri&#232;re. Cool. J'essaye la demo en ligne... allez, je l'installe, et je vois ce qu'il y a dedans...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rails 3.1.1, HAML, SASS/LESS, JQuery. On est vraiment dans ce qui se fait de mieux. En tout cas dans le mainstream de la communaut&#233; Rails&lt;/li&gt;
&lt;li&gt;55 tables dans la BDD... seulement ??! Pour situer, Prestashop est autour de 135 tables &quot;out of the box&quot;, et Magento 218. Bon, ok, &#231;a ne veut pas dire grand chose. Moui, mais bon... quand m&#234;me, 55 tables, &#231;a &quot;tend quand m&#234;me &#224; signifier&quot; (notez les guillemets, svp) que pas mal de features seront en add-on, ou bien tout simplement absentes par rapport aux deux autres poids lourds du secteur sus-nomm&#233;s.&lt;/li&gt;
&lt;li&gt;Hooo, y'a une API ! Bon signe, &#231;a prouve qu'on est proche des besoins des grosses boutiques.&lt;/p&gt;
&lt;li&gt;La doc. Ou plut&#244;t : LA doc. Rien &#224; redire concernant ce qu'on trouve sur le site, propre, net, pr&#233;cis (en Anglais, &#231;a va de soit). Ok, mais _ailleurs_ ? Les tutos ? Les Blogs posts ?! Ben... pas grand chose. Quelques bribes &#233;parses sur des forums, &#224; prendre avec des pincettes tellement Spree semble avoir chang&#233; ces derni&#232;res &lt;del&gt;ann&#233;es&lt;/del&gt; mois. &quot;On est dans le cutting edge, man !&quot;. En clair : va falloir s'accrocher.&lt;/li&gt;  
&lt;/ul&gt;
&lt;p&gt;L'installation se d&#233;roule facilement, puisque... &lt;b&gt;toute&lt;/b&gt; l'application est contenue dans des Gems. Autant le dire franchement : je n'aime pas &lt;i&gt;du tout&lt;/i&gt; cette approche (que j'ai d&#233;ja vu ailleurs :-/). Les Gems, &#224; mon sens (et sauf erreur de ma part, j'ai lu DHH dire la m&#234;me chose) sont l&#224; pour &#233;tendre des fonctionnalit&#233;s &#224; l'&#233;chelle de Ruby. Perso, je ne comprends pas qu'on utilise ce moyen pour distribuer toute une appli, qui plus est une appli tournant non au niveau du language, mais bien en dessous dans un Framework ! Concr&#233;tement, apr&#232;s installation, vous vous retrouvez donc avec une application... vide, puisque tout est dans des Gems.&lt;/p&gt;
&lt;p&gt;Ok, bon, admettons, commen&#231;ons &#224; modifier une vue ou deux pour se mettre en jambes : que dit la doc ? Qu'il faut cr&#233;er d'autres Gems pour y mettre sa customisation, m&#234;me au niveau des simples vues :-/ Donc, si je suis bien tout &#231;a : mon appli est, et restera vide. En fait, Spree, c'est un Framework de Gems, quoi...&lt;/p&gt;
&lt;p&gt;L&#224; dessus, j'ai lev&#233; la t&#234;te du guidon et suis parti &#224; la recherche de boutiques d&#233;ja mont&#233;es avec Spree : quelques &quot;something went wrong&quot; (si si) et quelques customisations de vues vraiment simplettes plus tard, j'ai d&#233;cid&#233; de laisser Spree dans un coin de mon /var/www, et d'y revenir dans quelques mois. Peut-&#234;tre. Ou plut&#244;t : j'esp&#232;re.&lt;/p&gt;
&lt;p&gt;Ce Post ne repr&#233;sente que ma modeste opinion apr&#232;s quelques heures de survol rapide de Spree. Si vous arrivez &#224; me convaincre de m'accrocher encore un peu avec cette appli, libre &#224; vous d'exposer vos arguments en commentaire, je n'attends que &#231;a ;-)&lt;/p&gt;</description>
      <guid>http://www.guillaume-barillot.com/blog/fr/2011/11/02/228-un-premier-avis-sur-spree-plateforme-ecommerce-pour-ruby-on-rails</guid>
    </item>
    <item>
      <pubDate>Sat, 02 Jul 2011 11:09:26 +0200</pubDate>
      <title>Rulu 2011 : la communaut&#233; Ruby (on Rails) Europ&#233;enne vaut vraiment le d&#233;tour</title>
      <link>http://www.guillaume-barillot.com/blog/fr/2011/07/02/227-rulu-2011-la-communaute-ruby-on-rails-europeenne-vaut-vraiment-le-detour</link>
      <description>&lt;p&gt;Un p'tit peu de retard dans la restranscription de RULU, la conf' Ruby (on Rails) Lyonnaise qui a eu lieu le Week-end du 25/26 Juin, mais je tenais &#224; laisser une trace quelque part de cet &#233;venement. Oui, &#233;venement, on peut le dire.&lt;/p&gt;
&lt;p&gt;Tout d'abord : &lt;strong&gt;la qualit&#233; des intervenants&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href='https://github.com/svenfuchs'&gt;Sven Fuchs&lt;/a&gt; (I18n de Rails) &lt;a href='https://github.com/hcatlin'&gt;Hampton Catlin&lt;/a&gt; (Monsieur SASS, HAML), &lt;a href='https://github.com/apotonick'&gt;Nick Sutterer&lt;/a&gt; (Apotomo, Cells)... j'en passe, et des meilleurs, comme le dit l'expression. J'&#233;tais franchement impressionn&#233; par le niveau des speakers, surtout pour une premi&#232;re.&lt;/p&gt;
&lt;p&gt;Ensuite : &lt;strong&gt;la qualit&#233; et la diversit&#233; des Talks&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;J'avoue qu'au d&#233;but, j'avais un peu peur d'&#234;tre lach&#233; par des talks trop orient&#233;s technique et &quot;high level&quot;. Il n'en fut rien, chaque intervenant prenant soin de rendre son talk r&#233;ellement vivant, accessible, d'une part. Certains talks &#233;tant carr&#233;ment dans le registre &quot;social&quot;, d'autre part (Joshua Wehner par exemple, sur le th&#232;me de la n&#233;cessaire diversit&#233;, pour l'instant absente du milieu Geek).&lt;br /&gt;
En bref, je n'ai absolument pas &#233;t&#233; perdu par d'&#233;ventuelles envol&#233;es lyriques de techniciens autistes. Bien au contraire m&#234;me, y compris quand certains th&#232;mes &#233;taient bien &#233;pais (le Http Streaming, notamment), j'ai trouv&#233; les intervenants remarquables part leur sens de la p&#233;dagogie et de l'&#233;coute.&lt;/p&gt;
&lt;p&gt;Ne pas oublier : &lt;strong&gt;l'organisation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Un grand bravo &#224; tout le Staff, qui a fait un travail de Titan en tr&#232;s (tr&#232;s !) peu de temps. La participation de l'INSA fut aussi &#224; noter (les locaux &#233;taient juste parfaits). Franck, Damien, Vincent, Camille, Jean Michel (voui, j'en oublie, ne m'en voulez pas)... Vraiment, du bon boulot.&lt;/p&gt;
&lt;p&gt;Finalement : &lt;strong&gt;la communaut&#233; Ruby Europ&#233;eenne&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Un aspect particuli&#232;rement int&#233;ressant dans ce genre d'&#233;venement &#224; taille humaine (environ 100 personnes), ce sont les &#233;changes ; et de ce c&#244;t&#233; l&#224; c'&#233;tait aussi, vraiment, un bon moment ! Toulouse, Nantes, Paris, Nice... mais aussi Allemagne, Pays Bas, Suisse ou Angleterre... en ce qui me concerne, j'ai toujours beaucoup de plaisir &#224; m'ouvrir &#224; d'autres points de vue, sortir de mon trop petit monde habituel.&lt;br /&gt;
Un dernier petit point que j'ai aussi beaucoup aim&#233;, cons&#233;quence directe du milieu dans lequel Rails est le plus utilis&#233; : la communaut&#233; regroupe un grand nombre de gens ayant lanc&#233; leur business. Beaucoup de &quot;Start-uper&quot; donc, et de nombreux &#233;changes sur comment monter sa boite dans le Net.&lt;/p&gt;
&lt;p&gt;Enfin, et je concluerais sur ce point qui ne cesse de m'&#233;pater : la communaut&#233; Ruby(on Rails) est vraiment une communaut&#233; de gens ouverts, intelligents et agr&#233;ables. Techniquement exigeants, qui ont tous des Macs et ne parlent qu'Anglais, certes, mais des gens qui valent le coup d'&#234;tre connu. Des gens qui ne se la racontent absolument pas et sont toujours pr&#234;t &#224; vous donner un petit coup de main.
&lt;p&gt;Si &#231;a vous tente, et m&#234;me si vous n'&#234;tes pas (encore) dans la techno pour le moment, passez donc boire une bi&#232;re (ou deux) au prochain ap&#233;ro Ruby &#224; Lyon : ce mardi 12 juillet &#224; l'Antre Autre, lyon 1er !&lt;/p&gt;</description>
      <guid>http://www.guillaume-barillot.com/blog/fr/2011/07/02/227-rulu-2011-la-communaute-ruby-on-rails-europeenne-vaut-vraiment-le-detour</guid>
    </item>
    <item>
      <pubDate>Mon, 16 May 2011 10:17:35 +0200</pubDate>
      <title>Redimensionnez vos images &#224; la vol&#233;e avec Ruby on Rails</title>
      <link>http://www.guillaume-barillot.com/blog/fr/2011/05/16/226-redimensionnez-vos-images-a-la-volee-avec-ruby-on-rails</link>
      <description>&lt;p&gt;J'ai re-factoris&#233; et modifi&#233; en profondeur la syntaxe d'appel de mon bon vieux plugin &lt;a href='https://github.com/gbarillot/thumbnailer'&gt;Thumbnailer&lt;/a&gt;. Certes, vous pouvez d&#233;ja redimensionner les images lors de l'Upload avec &lt;a href='https://github.com/thoughtbot/paperclip'&gt;paperclip&lt;/a&gt;, mais thumbnailer vous permet d'aller encore plus loin : &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resize &#224; la vol&#233; au niveau de la vue&lt;/li&gt;
&lt;li&gt;Calcul automatique des proportions&lt;/li&gt;
&lt;li&gt;Gestion automatique du cache, les images ne sont trait&#233;es qu'une seule fois par RMagick&lt;/li&gt;
&lt;li&gt;Possibilit&#233; d'appel en &quot;remote&quot;, redimensionnez vos images depuis votre client en JS !&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Niveau utilisation, on ne peut pas faire plus simple :&lt;/p&gt;
&lt;pre&gt;
# View
&amp;lt;%= thumbnailer :src=&gt;'/images/my_image.jpg', :width=&gt;'200' %&amp;gt;
&lt;/pre&gt;
Et le plugin se charge tout seul de vous g&#233;n&#233;rer une image de 200 pixels de large, qui est mise en cache dans '/cache/images/200xauto/my_image.jpg'. La vue finale affichant un tag img comme celui-ci :
&lt;pre&gt;
&amp;lt;img src='/cache/images/200xauto/my_image.jpg?1305495323' width='200' alt='my_image' /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Tous les attributs possibles d'une balise img sont reconnus, y compris les &#233;venements JavaScript. L'attribut 'alt', si il n'est pas sp&#233;cifi&#233;, sera automatiquement g&#233;n&#233;r&#233; &#224; partir du nom de fichier. Vous noterez aussi que le nom de fichier est suffix&#233; par un timestamp, permettant au cache client side de g&#233;rer une image diff&#233;rente mais portant le m&#234;me nom de fichier, tout comme le 'image_tag' original de Rails.&lt;/p&gt;
&lt;p&gt;En bonus, avec le param&#232;tre &quot;remote&quot;, l'appel de l'image peut aussi se faire directement depuis le param&#232;tre 'src' du tag img :&lt;/p&gt;
&lt;pre&gt;
# View
&amp;lt;%= thumbnailer :src=&gt;'/images/my_image.jpg', :width=&gt;'200', :remote=&gt;true %&amp;gt;

# Final output
&amp;lt;img src='/thumbnailer/200xauto/images/my_image.jpg' width='200' alt='my_image' /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Effet de bord sympathique, vous disposez maintenant d'une simple URL pour appeler une image de n'importe quelle dimension depuis votre client en Javascript, genre :&lt;/p&gt;
&lt;pre&gt;
$('my_image').src='http://my_domain.com/thumbnailer/200xauto/images/my_image.jpg';
alert(&quot;Look ! The image has been resized !&quot;);
&lt;/pre&gt;
&lt;p&gt;Ca fait maintenant 2 ans que j'utilise ces features dans tous mes projets. Au d&#233;but c'&#233;tait une collection de helpers, de routes et de controllers, puis j'ai pris un peu de temps pour packager tout &#231;a dans un plugin. Je pense maintenant que cette nouvelle version est plus clean et efficace, mais je vous laisse vous faire votre avis l&#224; dessus. Comme d'habitude, si vous avez des remarques, laissez un commentaire...&lt;/p&gt;</description>
      <guid>http://www.guillaume-barillot.com/blog/fr/2011/05/16/226-redimensionnez-vos-images-a-la-volee-avec-ruby-on-rails</guid>
    </item>
    <item>
      <pubDate>Mon, 11 Apr 2011 10:28:50 +0200</pubDate>
      <title>Vous faites quoi le 25/26 Juin ?</title>
      <link>http://www.guillaume-barillot.com/blog/fr/2011/04/11/225-vous-faites-quoi-le-2526-juin</link>
      <description>&lt;p&gt;Le Week-end du 25/26 Juin se d&#233;roulera Ruby Lugdunum, la conf. Lyonnaise autour de Ruby on Rails ! Au programme sont d'ors et d&#233;ja confirm&#233; Sven Fuchs (Rails Core contributor) et Konstantin Haase (l'un des principaux Developpeur de Sinatra). Il y aura aussi d'autres conf autour de Rubynius, &quot;Solid&quot; application concepts...&lt;/p&gt;
&lt;p&gt;L'&#233;venement devrait logiquement se faire sur le Campus de la Doua, et l'ambiance promet d'&#234;tre -comme toujours avec la communaut&#233; Ruby- s&#233;rieuse mais sans prise de t&#234;te (si si, c'est possible). &lt;/p&gt;
&lt;p&gt;Tous les d&#233;tails sont sur &lt;a href='http://rulu.eu'&gt;Rulu.eu&lt;/a&gt;, et pour rester au courant des pr&#233;paratifs, le mieux est de s'abonner au compte &lt;a href='http://twitter.com/#!/rubylug'&gt;Twitter&lt;/a&gt;.&lt;/p&gt;</description>
      <guid>http://www.guillaume-barillot.com/blog/fr/2011/04/11/225-vous-faites-quoi-le-2526-juin</guid>
    </item>
    <item>
      <pubDate>Thu, 31 Mar 2011 12:39:39 +0200</pubDate>
      <title>SIPS/ATOS et Ruby on Rails avec le plugin 'atos' </title>
      <link>http://www.guillaume-barillot.com/blog/fr/2011/03/31/224-sipsatos-et-ruby-on-rails-avec-le-plugin-'atos'</link>
      <description>&lt;p&gt;Apr&#232;s &lt;a href='/blog/fr/2010/11/30/209-dialoguer-facilement-avec-les-serveurs-de-paiement-paybox-depuis-rails'&gt;Paybox&lt;/a&gt;, je me suis derni&#232;rement interess&#233; &#224; SIPS/ATOS, poids lourd du paiement ligne hexagonal. Derri&#232;re une apparente complexit&#233;, le principe est en fait assez simple :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'acheteur valide son panier, un controller r&#233;cup&#232;re les param&#232;tres (prix, id du panier...), les envoie dans un binaire qui crypte le tout et renvoie un formulaire HTML avec 3 (ou +) logos de carte de cr&#233;dit au sein du site marchand&lt;/li&gt;
&lt;li&gt;L'acheteur choisi la carte de cr&#233;dit appropri&#233;e et part sur le site de la banque&lt;/li&gt;
&lt;li&gt;Une fois les num&#233;ros de carte valid&#233;s sur le site de la banque, celui-ci r&#233;pond au marchand &quot;dans le dos du navigateur&quot; (c'est l'auto-response) via une chaine crypt&#233;e&lt;/li&gt;
&lt;li&gt;un controller r&#233;cup&#232;re l'auto response et la passe &#224; nouveau dans un binaire afin d'en obtenir un tableau associatif&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ne trouvant rien de simple qui me convienne, j'ai cod&#233; un petit plugin qui permet de faire tout &#231;a dans Rails tr&#232;s facilement. Dans une console &#224; la racine de votre appli  : 
&lt;pre&gt;
script/plugin install git@github.com:gbarillot/atos.git
&lt;/pre&gt;
&lt;p&gt;Ensuite, d&#233;posez les fichiers fournis par la banque dans /lib/atos. Le r&#233;pertoire lib doit ressembler &#224; &#231;a :&lt;/p&gt;
&lt;pre&gt;
/mon_appli
  /lib
    /atos
      /bin
        request
        request_2.4.18_2.96
        ....
      /param
        certif.fr.014295303911111
        parmcom.014295303911111
        parmcom.sherlocks
        pathfile
&lt;/pre&gt;
&lt;p&gt;Petites remarques : le num&#233;ro &quot;014295303911111&quot; en suffixe correspond au marchant_id de test, et &quot;sherlocks&quot; correspond au fait que je passe par LCL. Si vous passez par la Soci&#233;t&#233; G&#233;n&#233;rale, vous aurez &quot;parmcom.sogenactif&quot;. Je pr&#233;f&#232;re vraiment le &quot;conventions over configuration&quot;, mais vous pouvez aussi passer les chemins vers vos fichiers au niveau de l'instanciation de la classe Atos. Ca rajoute juste une &#233;tape :&lt;/p&gt;
&lt;pre&gt;
atos = Atos.new(
  :root_dir=&gt;'/path/to/your/main/dir'
)
.... et ensuite :
@request = atos.request(
  :merchant_id=&gt;'014295303911111',
  :amount=&gt;'1500', 
  :customer_id=&gt;session[:customer_id],
  :automatic_response_url=&gt;&quot;http://mon_site.com/payment/validate&quot;,
  :normal_return_url=&gt;&quot;http://mon_site.com/payment/fr/confirm&quot;,
  :cancel_return_url=&gt;&quot;http://mon_site.com&quot;
)
&lt;/pre&gt;
&lt;p&gt;Tant que nous sommes dans le param&#233;trage des fichiers, d&#233;posez aussi le r&#233;pertoire &quot;logos&quot; et contenant les logos des cartes dans un r&#233;pertoire public de votre appli (par exemple /public/images/logos). Prenez aussi soin de renseigner le fichier &quot;/lib/atos/param/pathfile&quot; avec tous les chemins &lt;i&gt;__en absolu__&lt;/i&gt; vers les diff&#233;rents r&#233;pertoires que nous venons de cr&#233;er&lt;/p&gt;
&lt;p&gt;Ok, maintenant que tout est en place, on va pouvoir commencer &#224; faire tourner tout &#231;a. R&#233;cuperez l'action de l'acheteur lorsqu'il valide son panier via l'URL de votre choix, et g&#233;n&#233;rons la requ&#234;te. Depuis le controller :&lt;/p&gt;
&lt;pre&gt;
@request = Atos.new.request(
  :merchant_id=&gt;'014295303911111',
  :amount=&gt;'1500', 
  :customer_id=&gt;session[:customer_id],
  :automatic_response_url=&gt;&quot;http://mon_site.com/payment/validate&quot;,
  :normal_return_url=&gt;&quot;http://mon_site.com/payment/fr/confirm&quot;,
  :cancel_return_url=&gt;&quot;http://mon_site.com&quot;
)

render :template=&gt;'payment/call_request'
&lt;/pre&gt;
&lt;p&gt;Si tout se passe bien, nous r&#233;cup&#233;rons dans @request un formulaire HTML avec les logos des cartes, ainsi qu'une variable &quot;DATA&quot; dans un champ &quot;hidden&quot; contenant l'int&#233;gralit&#233; de notre requ&#234;te crypt&#233;e, il n'y a plus qu'&#224; l'afficher dans le template (ici avec HAML) :&lt;/p&gt;
&lt;pre&gt;
%span
  = &quot;S&#233;lectionnez votre type de carte :&quot;
%br
= @request
&lt;/pre&gt;
&lt;p&gt;------------ L'acheteur clic sur un des logos de carte et se rend sur le site de la banque. Celle-ci va maintenant nous r&#233;pondre ---------------------&lt;/p&gt;
&lt;p&gt;On r&#233;cup&#232;re l'auto-response sur une URL &#224; l'&#233;coute en POST (je vous laisse cr&#233;er la route de votre choix, dans mon exemple, c'est /payement/fr/validate). Il n'y a que 2 lignes &#224; ajouter dans le controller appropri&#233; :&lt;/p&gt;
&lt;pre&gt;      
response = Atos.new.response(datas)

response[:response_code] # 00 =&gt; transaction r&#233;ussie
...
&lt;/pre&gt;
&lt;p&gt;Et hop, on obtiens un joli Hash avec toutes les variables de r&#233;ponse disponibles dans l'API (voir le &quot;dictionnaire des donn&#233;es&quot; fourni avec l'API pour tous les d&#233;tails). Maintenant, &#224; vous de traiter cette r&#233;ponse selon que le paiement a &#233;t&#233; accept&#233; ou refus&#233;, puis de valider l'achat dans la Base...&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;Quelques petits d&#233;tails : &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;les 6 param&#232;tres que j'utilise dans mon exemple au niveau de la requ&#234;te sont les seuls &#224; &#234;tre requis par le plugin, mais vous pouvez tout &#224; fait envoyer tous les param&#232;tres stipul&#233;s dans le &quot;dictionnaire des donn&#233;es&quot;, rajoutez simplement les couples &quot;clef/valeur&quot; dans le hash de la requ&#234;te.&lt;/li&gt;
&lt;li&gt;Par d&#233;faut la langue et la devise utilis&#233;s sont &quot;fr/euro&quot;, mais vous pouvez surcharger avec ceux de votre choix au moment de l'instanciation de la classe Atos.&lt;/li&gt;
&lt;li&gt;Les URL de retour (normal/cancel) sont envoy&#233;es par POST, n'oubliez donc pas d'&#233;couter aussi en POST les routes correspondantes&lt;/li&gt;
&lt;li&gt;C'est idiot mais ne pas oublier de lever la protection CSRF pour l'auto response (par rapport &#224; mon exemple, ce serait &quot;protect_from_forgery :except=&gt;:validate&quot;). Sans quoi l'auto-response ne sera jamais recevable par votre controller. C'est c** mais &#231;a m'a cout&#233; 30mn d'arrachage de cheveux :-/.&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;Vous pouvez m'envoyer un Mail si vous avez des probl&#232;mes, je ne garantie rien, mais j'essaierai de r&#233;pondre. &lt;/p&gt;</description>
      <guid>http://www.guillaume-barillot.com/blog/fr/2011/03/31/224-sipsatos-et-ruby-on-rails-avec-le-plugin-'atos'</guid>
    </item>
  </channel>
</rss>

