Class: ActiveMerchant::Billing::OgoneGateway
- Defined in:
- lib/active_merchant/billing/gateways/ogone.rb
Overview
Ogone DirectLink Gateway
DirectLink is the API version of the Ogone Payment Platform. It allows server to server communication between Ogone systems and your e-commerce website.
This implementation follows the specification provided in the DirectLink integration guide version 4.2.0 (26 October 2011), available here: secure.ogone.com/ncol/Ogone_DirectLink_EN.pdf
It also features aliases, which allow to store/unstore credit cards, as specified in the Alias Manager Option guide version 3.2.0 (26 October 2011) available here: secure.ogone.com/ncol/Ogone_Alias_EN.pdf
It was last tested on Release 4.89 of Ogone DirectLink + AliasManager (26 October 2011).
For any questions or comments, please contact one of the following:
-
Nicolas Jacobeus ([email protected]),
-
Sébastien Grosjean ([email protected]),
-
Rémy Coutable ([email protected]).
Usage
gateway = ActiveMerchant::Billing::OgoneGateway.new(
:login => "my_ogone_psp_id",
:user => "my_ogone_user_id",
:password => "my_ogone_pswd",
:signature => "my_ogone_sha_signature", # Only if you configured your Ogone environment so.
:signature_encryptor => "sha512", # Can be "sha1" (default), "sha256" or "sha512".
# Must be the same as the one configured in your Ogone account.
)
# set up credit card object as in main ActiveMerchant example
creditcard = ActiveMerchant::Billing::CreditCard.new(
:type => 'visa',
:number => '4242424242424242',
:month => 8,
:year => 2009,
:first_name => 'Bob',
:last_name => 'Bobsen'
)
# run request
response = gateway.purchase(1000, creditcard, :order_id => "1") # charge 10 EUR
If you don't provide an :order_id, the gateway will generate a random one for you.
puts response.success? # Check whether the transaction was successful
puts response.message # Retrieve the message returned by Ogone
puts response.authorization # Retrieve the unique transaction ID returned by Ogone
Alias feature
To use the alias feature, simply add :store in the options hash:
# Associate the alias to that credit card
gateway.purchase(1000, creditcard, :order_id => "1", :store => "myawesomecustomer")
# You can use the alias instead of the credit card for subsequent orders
gateway.purchase(2000, "myawesomecustomer", :order_id => "2")
Constant Summary collapse
- URLS =
{ :order => 'https://secure.ogone.com/ncol/%s/orderdirect.asp', :maintenance => 'https://secure.ogone.com/ncol/%s/maintenancedirect.asp' }
- CVV_MAPPING =
{ 'OK' => 'M', 'KO' => 'N', 'NO' => 'P' }
- AVS_MAPPING =
{ 'OK' => 'M', 'KO' => 'N', 'NO' => 'R' }
- SUCCESS_MESSAGE =
"The transaction was successful"
- OGONE_NO_SIGNATURE_DEPRECATION_MESSAGE =
"Signature usage will be required from a future release of ActiveMerchant's Ogone Gateway. Please update your Ogone account to use it."
- OGONE_LOW_ENCRYPTION_DEPRECATION_MESSAGE =
"SHA512 signature encryptor will be required from a future release of ActiveMerchant's Ogone Gateway. Please update your Ogone account to use it."
Constants inherited from Gateway
Gateway::CREDIT_DEPRECATION_MESSAGE, Gateway::CURRENCIES_WITHOUT_FRACTIONS, Gateway::DEBIT_CARDS
Instance Attribute Summary
Attributes inherited from Gateway
Instance Method Summary collapse
-
#authorize(money, payment_source, options = {}) ⇒ Object
Verify and reserve the specified amount on the account, without actually doing the transaction.
-
#capture(money, authorization, options = {}) ⇒ Object
Complete a previously authorized transaction.
-
#credit(money, identification_or_credit_card, options = {}) ⇒ Object
Credit the specified account by a specific amount.
-
#initialize(options = {}) ⇒ OgoneGateway
constructor
A new instance of OgoneGateway.
-
#purchase(money, payment_source, options = {}) ⇒ Object
Verify and transfer the specified amount.
-
#refund(money, reference, options = {}) ⇒ Object
Refund of a settled transaction.
- #test? ⇒ Boolean
-
#void(identification, options = {}) ⇒ Object
Cancels a previously authorized transaction.
Methods inherited from Gateway
#card_brand, card_brand, inherited, supports?
Methods included from CreditCardFormatting
Constructor Details
#initialize(options = {}) ⇒ OgoneGateway
Returns a new instance of OgoneGateway.
94 95 96 97 98 |
# File 'lib/active_merchant/billing/gateways/ogone.rb', line 94 def initialize( = {}) requires!(, :login, :user, :password) @options = super end |
Instance Method Details
#authorize(money, payment_source, options = {}) ⇒ Object
Verify and reserve the specified amount on the account, without actually doing the transaction.
101 102 103 104 105 106 107 108 109 |
# File 'lib/active_merchant/billing/gateways/ogone.rb', line 101 def (money, payment_source, = {}) post = {} add_invoice(post, ) add_payment_source(post, payment_source, ) add_address(post, payment_source, ) add_customer_data(post, ) add_money(post, money, ) commit('RES', post) end |
#capture(money, authorization, options = {}) ⇒ Object
Complete a previously authorized transaction.
123 124 125 126 127 128 129 130 |
# File 'lib/active_merchant/billing/gateways/ogone.rb', line 123 def capture(money, , = {}) post = {} (post, reference_from()) add_invoice(post, ) add_customer_data(post, ) add_money(post, money, ) commit('SAL', post) end |
#credit(money, identification_or_credit_card, options = {}) ⇒ Object
Credit the specified account by a specific amount.
140 141 142 143 144 145 146 147 148 |
# File 'lib/active_merchant/billing/gateways/ogone.rb', line 140 def credit(money, identification_or_credit_card, = {}) if reference_transaction?(identification_or_credit_card) deprecated CREDIT_DEPRECATION_MESSAGE # Referenced credit: refund of a settled transaction refund(money, identification_or_credit_card, ) else # must be a credit card or card reference perform_non_referenced_credit(money, identification_or_credit_card, ) end end |
#purchase(money, payment_source, options = {}) ⇒ Object
Verify and transfer the specified amount.
112 113 114 115 116 117 118 119 120 |
# File 'lib/active_merchant/billing/gateways/ogone.rb', line 112 def purchase(money, payment_source, = {}) post = {} add_invoice(post, ) add_payment_source(post, payment_source, ) add_address(post, payment_source, ) add_customer_data(post, ) add_money(post, money, ) commit('SAL', post) end |
#refund(money, reference, options = {}) ⇒ Object
Refund of a settled transaction
151 152 153 |
# File 'lib/active_merchant/billing/gateways/ogone.rb', line 151 def refund(money, reference, = {}) perform_reference_credit(money, reference, ) end |
#test? ⇒ Boolean
155 156 157 |
# File 'lib/active_merchant/billing/gateways/ogone.rb', line 155 def test? @options[:test] || super end |
#void(identification, options = {}) ⇒ Object
Cancels a previously authorized transaction.
133 134 135 136 137 |
# File 'lib/active_merchant/billing/gateways/ogone.rb', line 133 def void(identification, = {}) post = {} (post, reference_from(identification)) commit('DES', post) end |