102 lines
3.0 KiB
Plaintext
102 lines
3.0 KiB
Plaintext
|
# Paiement CIC
|
||
|
|
||
|
Paiement CIC is a plugin to ease credit card payment with the CIC / Crédit Mutuel banks system.
|
||
|
It's a Ruby on Rails port of the connexion kits published by the bank.
|
||
|
|
||
|
* The Plugin [site](http://github.com/novelys/cicpayment)
|
||
|
* The banks payment [site](http://www.cmcicpaiement.fr)
|
||
|
|
||
|
|
||
|
## INSTALL
|
||
|
|
||
|
script/plugin install git://github.com/novelys/paiementcic.git
|
||
|
|
||
|
## USAGE
|
||
|
|
||
|
### in environment.rb :
|
||
|
|
||
|
# here the hmac key calculated with the js calculator given by CIC
|
||
|
PaiementCic.hmac_key = "########################################"
|
||
|
# Here the TPE number
|
||
|
PaiementCic.tpe = "#######"
|
||
|
# Here the Merchant name
|
||
|
PaiementCic.societe = "xxxxxxxxxxxxx"
|
||
|
|
||
|
### in development.rb :
|
||
|
|
||
|
PaiementCic.target_url = "https://ssl.paiement.cic-banques.fr/test/paiement.cgi"
|
||
|
|
||
|
### in production.rb :
|
||
|
|
||
|
PaiementCic.target_url = "https://ssl.paiement.cic-banques.fr/paiement.cgi"
|
||
|
|
||
|
### in order controller :
|
||
|
|
||
|
helper :paiement_cic
|
||
|
|
||
|
### in the payment by card view :
|
||
|
|
||
|
- form_tag PaiementCic.target_url do
|
||
|
= paiement_cic_hidden_fields(@order, @order_transaction)
|
||
|
= submit_tag "Accéder au site de la banque", :style => "font-weight: bold;"
|
||
|
= image_tag "reassuring_pictograms.jpg", :alt => "Pictogrammes rassurants", :style => "width: 157px;"
|
||
|
|
||
|
### in a controller for call back from the bank :
|
||
|
|
||
|
class OrderTransactionsController < ApplicationController
|
||
|
|
||
|
protect_from_forgery :except => [:bank_callback]
|
||
|
|
||
|
def bank_callback
|
||
|
if PaiementCic.verify_hmac(params)
|
||
|
order_transaction = OrderTransaction.find_by_reference params[:reference], :last
|
||
|
order = order_transaction.order
|
||
|
|
||
|
code_retour = params['code-retour']
|
||
|
|
||
|
if code_retour == "Annulation"
|
||
|
order.cancel!
|
||
|
order.update_attribute :description, "Paiement refusé par la banque."
|
||
|
|
||
|
elsif code_retour == "payetest"
|
||
|
order.pay!
|
||
|
order.update_attribute :description, "TEST accepté par la banque."
|
||
|
order_transaction.update_attribute :test, true
|
||
|
|
||
|
elsif code_retour == "paiement"
|
||
|
order.pay!
|
||
|
order.update_attribute :description, "Paiement accepté par la banque."
|
||
|
order_transaction.update_attribute :test, false
|
||
|
end
|
||
|
|
||
|
order_transaction.update_attribute :success, true
|
||
|
|
||
|
receipt = "OK"
|
||
|
else
|
||
|
order.transaction_declined!
|
||
|
order.update_attribute :description, "Document Falsifie."
|
||
|
order_transaction.update_attribute :success, false
|
||
|
|
||
|
receipt = "Document Falsifie"
|
||
|
end
|
||
|
render :text => "Version: 1\n#{receipt}\n"
|
||
|
end
|
||
|
|
||
|
def bank_ok
|
||
|
@order_transaction = OrderTransaction.find params[:id]
|
||
|
@order = @order_transaction.order
|
||
|
@order.pay!
|
||
|
end
|
||
|
|
||
|
def bank_err
|
||
|
order_transaction = OrderTransaction.find params[:id]
|
||
|
order = order_transaction.order
|
||
|
order.cancel!
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
|
||
|
## License
|
||
|
Copyright (c) 2008-2009 Novelys Team, released under the MIT license
|