Add predefined URLs for CIC and CM and both environments
parent
93d0c9262d
commit
7b428b5b61
|
@ -18,16 +18,47 @@ module PaiementCic
|
||||||
API_VERSION = "3.0"
|
API_VERSION = "3.0"
|
||||||
DATE_FORMAT = "%d/%m/%Y:%H:%M:%S"
|
DATE_FORMAT = "%d/%m/%Y:%H:%M:%S"
|
||||||
|
|
||||||
|
END_POINTS = {
|
||||||
|
cic: {
|
||||||
|
production: 'https://ssl.paiement.cic-banques.fr/paiement.cgi',
|
||||||
|
test: 'https://ssl.paiement.cic-banques.fr/test/paiement.cgi'
|
||||||
|
},
|
||||||
|
cm: {
|
||||||
|
production: 'https://paiement.creditmutuel.fr/paiement.cgi',
|
||||||
|
test: 'https://paiement.creditmutuel.fr/test/paiement.cgi'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DEFAULT_BANK = :cm
|
||||||
|
DEFAULT_ENV = :test
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
attr_accessor :hmac_key, :tpe, :societe, :env
|
attr_accessor :hmac_key, :tpe, :societe
|
||||||
attr_writer :target_url
|
attr_writer :target_url
|
||||||
|
|
||||||
def configure(&block)
|
def configure(&block)
|
||||||
yield(self) if block_given?
|
yield(self) if block_given?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def bank
|
||||||
|
@bank || DEFAULT_BANK
|
||||||
|
end
|
||||||
|
|
||||||
|
def bank=(value)
|
||||||
|
raise UnknownBankError unless END_POINTS.keys.include?(value.to_sym)
|
||||||
|
@bank = value
|
||||||
|
end
|
||||||
|
|
||||||
|
def env
|
||||||
|
@env || DEFAULT_ENV
|
||||||
|
end
|
||||||
|
|
||||||
|
def env=(value)
|
||||||
|
raise UnknownEnvError unless END_POINTS.first.last.include?(value.to_sym)
|
||||||
|
@env = value
|
||||||
|
end
|
||||||
|
|
||||||
def target_url
|
def target_url
|
||||||
@target_url ||= (env == 'production' ? '' : "https://paiement.creditmutuel.fr/test/paiement.cgi") # "https://ssl.paiement.cic-banques.fr/paiement.cgi"
|
@target_url || END_POINTS[self.bank][self.env]
|
||||||
end
|
end
|
||||||
|
|
||||||
def hmac_sha1(key, data)
|
def hmac_sha1(key, data)
|
||||||
|
@ -45,4 +76,7 @@ module PaiementCic
|
||||||
Digest::SHA1.hexdigest(k_opad + [Digest::SHA1.hexdigest(k_ipad + data)].pack("H*"))
|
Digest::SHA1.hexdigest(k_opad + [Digest::SHA1.hexdigest(k_ipad + data)].pack("H*"))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class UnknownBankError < Exception; end
|
||||||
|
class UnknownEnvError < Exception; end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue