<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://jul.is.a.n0life.org/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>jul is a nolife - CIC</title>
  <link>http://jul.is.a.n0life.org/blog/</link>
  <description></description>
  <language>ab</language>
  <pubDate>Wed, 08 Sep 2010 01:22:42 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Plugin cybermut pour rails</title>
    <link>http://jul.is.a.n0life.org/blog/post/2009/02/04/Plugin-cybermut-pour-rails</link>
    <guid isPermaLink="false">urn:md5:d292ca749c4ac3f5cae9b0d13e2f42b5</guid>
    <pubDate>Wed, 04 Feb 2009 00:21:00 +0100</pubDate>
    <dc:creator>jul</dc:creator>
        <category>CIC</category><category>cybermut</category><category>P@iement CIC</category><category>Paiement CIC</category><category>plugin</category><category>Ruby On Rails</category>    
    <description>    &lt;p&gt;Je finis par publier ce plugin &lt;a href=&quot;http://commerce.e-i.com/news/&quot; hreflang=&quot;fr&quot;&gt;cybermut&lt;/a&gt; que j'ai sous le coude depuis un moment, et que j'ai enfin utilisé en production&lt;/p&gt;

&lt;pre&gt;
script/plugin install http://svn.immateriel.fr/cybermut/trunk
&lt;/pre&gt;


&lt;p&gt;Le README:&lt;/p&gt;


&lt;p&gt;Basé sur le gem paypal et sur le &lt;a href=&quot;http://groups.google.com/group/railsfrance/msg/de3ce6d5c5a44fbd&quot; hreflang=&quot;fr&quot;&gt;code&lt;/a&gt; de Yann KLIS&lt;/p&gt;


&lt;p&gt;Dans environment.rb:&lt;/p&gt;
&lt;pre&gt;
Cybermut::Confirmation.action_url = &amp;quot;https://ssl.paiement.cic-banques.fr/test/paiement.cgi&amp;quot;
Cybermut::Confirmation.hmac_sha1_key = &amp;quot;SHA1_KEY&amp;quot;
Cybermut::Confirmation.hmac_sha1_pass = &amp;quot;SHA1_PASS&amp;quot;
&lt;/pre&gt;



&lt;p&gt;Dans la vue:&lt;/p&gt;
&lt;pre&gt;
cybermut_setup(no_commande, montant, tpe, options)
&lt;/pre&gt;


&lt;p&gt;Exemple:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;%=  cybermut_form_tag %&amp;gt;
&amp;lt;%= cybermut_setup(&amp;quot;order10&amp;quot;, 100, &amp;quot;123456&amp;quot;,'societe'=&amp;gt;&amp;quot;nomsociete&amp;quot;, 'url_retour_ok'=&amp;gt;&amp;quot;http://site/paiement_ok&amp;quot;, 'url_retour_err'=&amp;gt;&amp;quot;http://site/paiement_erreur&amp;quot;) %&amp;gt;
&amp;lt;%= submit_tag &amp;quot;Payer maintenant&amp;quot;%&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/pre&gt;


&lt;p&gt;La validation:&lt;/p&gt;

&lt;pre&gt;
def validate_cybermut_order
  if request.raw_post
    confirmation=Cybermut::Confirmation.new(request.raw_post)
    # verification que la commande existe dans la base
    if Order.exists?(confirmation.reference)
      @order=Order.find(confirmation.reference)
      # verification de la validité du message du serveur cybermut
      if confirmation.acknowledge
        # verification du total
        if @order.total == confirmation.montant_euros
          @order.validation
          logger.info &amp;quot;CYBERMUT: order #{@order.id} is OK&amp;quot;
        else
          logger.info &amp;quot;CYBERMUT: order #{@order.id} FAILS with data problem&amp;quot;
        end
      else
        logger.info &amp;quot;CYBERMUT: order #{@order.id} FAILS with validation
      end
    else
      logger.info &amp;quot;CYBERMUT: order #{confirmation.reference} FAILS not found&amp;quot;
    end
  end
  render :text=&amp;gt;confirmation.response
end
&lt;/pre&gt;



&lt;p&gt;Limitations&amp;nbsp;:
Pas de support d'une autre monnaie que l'euro&lt;/p&gt;</description>
    
    
    
          <comments>http://jul.is.a.n0life.org/blog/post/2009/02/04/Plugin-cybermut-pour-rails#comment-form</comments>
      <wfw:comment>http://jul.is.a.n0life.org/blog/post/2009/02/04/Plugin-cybermut-pour-rails#comment-form</wfw:comment>
      <wfw:commentRss>http://jul.is.a.n0life.org/blog/feed/rss2/comments/29</wfw:commentRss>
      </item>
    
</channel>
</rss>