Class: ActiveMerchant::Billing::RealexGateway

Inherits:
Gateway
  • Object
show all
Defined in:
lib/active_merchant/billing/gateways/realex.rb

Overview

Realex is the leading CC gateway in Ireland see www.realexpayments.com Contributed by John Ward ([email protected]) see thinedgeofthewedge.blogspot.com

Realex works using the following login - The unique id of the merchant password - The secret is used to digitally sign the request account - This is an optional third part of the authentication process and is used if the merchant wishes do distinguish cc traffic from the different sources by using a different account. This must be created in advance

the Realex team decided to make the orderid unique per request, so if validation fails you can not correct and resend using the same order id

Constant Summary collapse

CARD_MAPPING =
{
  'master'            => 'MC',
  'visa'              => 'VISA',
  'american_express'  => 'AMEX',
  'diners_club'       => 'DINERS',
  'maestro'           => 'MC'
}
BANK_ERROR =
REALEX_ERROR  = 'Gateway is in maintenance. Please try again later.'
ERROR =
CLIENT_DEACTIVATED = 'Gateway Error'

Constants inherited from Gateway

Gateway::CREDIT_DEPRECATION_MESSAGE, Gateway::RECURRING_DEPRECATION_MESSAGE, Gateway::STANDARD_ERROR_CODE

Instance Attribute Summary

Attributes inherited from Gateway

#options

Instance Method Summary collapse

Methods inherited from Gateway

#add_field_to_post_if_present, #add_fields_to_post_if_present, #card_brand, card_brand, #generate_unique_id, inherited, supported_countries, #supported_countries, supported_countries=, supports?, #supports_network_tokenization?, #supports_scrubbing?, #test?

Methods included from CreditCardFormatting

#expdate, #format

Methods included from PostsData

included, #raw_ssl_request, #ssl_get, #ssl_post, #ssl_request

Constructor Details

#initialize(options = {}) ⇒ RealexGateway

Returns a new instance of RealexGateway.


43
44
45
46
47
48
# File 'lib/active_merchant/billing/gateways/realex.rb', line 43

def initialize(options = {})
  requires!(options, :login, :password)
  options[:refund_hash] = Digest::SHA1.hexdigest(options[:rebate_secret]) if options[:rebate_secret].present?
  options[:credit_hash] = Digest::SHA1.hexdigest(options[:refund_secret]) if options[:refund_secret].present?
  super
end

Instance Method Details

#authorize(money, creditcard, options = {}) ⇒ Object


57
58
59
60
61
62
# File 'lib/active_merchant/billing/gateways/realex.rb', line 57

def authorize(money, creditcard, options = {})
  requires!(options, :order_id)

  request = build_purchase_or_authorization_request(:authorization, money, creditcard, options)
  commit(request)
end

#capture(money, authorization, options = {}) ⇒ Object


64
65
66
67
# File 'lib/active_merchant/billing/gateways/realex.rb', line 64

def capture(money, authorization, options = {})
  request = build_capture_request(money, authorization, options)
  commit(request)
end

#credit(money, creditcard, options = {}) ⇒ Object


74
75
76
77
# File 'lib/active_merchant/billing/gateways/realex.rb', line 74

def credit(money, creditcard, options = {})
  request = build_credit_request(money, creditcard, options)
  commit(request)
end

#purchase(money, credit_card, options = {}) ⇒ Object


50
51
52
53
54
55
# File 'lib/active_merchant/billing/gateways/realex.rb', line 50

def purchase(money, credit_card, options = {})
  requires!(options, :order_id)

  request = build_purchase_or_authorization_request(:purchase, money, credit_card, options)
  commit(request)
end

#refund(money, authorization, options = {}) ⇒ Object


69
70
71
72
# File 'lib/active_merchant/billing/gateways/realex.rb', line 69

def refund(money, authorization, options = {})
  request = build_refund_request(money, authorization, options)
  commit(request)
end

#scrub(transcript) ⇒ Object


95
96
97
98
99
# File 'lib/active_merchant/billing/gateways/realex.rb', line 95

def scrub(transcript)
  transcript.
    gsub(%r((Authorization: Basic )\w+), '\1[FILTERED]').
    gsub(%r((<number>)\d+(</number>))i, '\1[FILTERED]\2')
end

#supports_scrubbingObject


91
92
93
# File 'lib/active_merchant/billing/gateways/realex.rb', line 91

def supports_scrubbing
  true
end

#verify(credit_card, options = {}) ⇒ Object


84
85
86
87
88
89
# File 'lib/active_merchant/billing/gateways/realex.rb', line 84

def verify(credit_card, options = {})
  requires!(options, :order_id)

  request = build_verify_request(credit_card, options)
  commit(request)
end

#void(authorization, options = {}) ⇒ Object


79
80
81
82
# File 'lib/active_merchant/billing/gateways/realex.rb', line 79

def void(authorization, options = {})
  request = build_void_request(authorization, options)
  commit(request)
end